-[workspace]
-members = [
+[package]
+name = "libostree"
+version = "0.1.1"
+authors = ["Felix Krull"]
+
+license = "MIT"
+description = "Rust bindings for libostree"
+keywords = ["ostree", "libostree"]
+
+documentation = "https://fkrull.gitlab.io/rust-libostree/libostree"
+repository = "https://gitlab.com/fkrull/rust-libostree"
+readme = "README.md"
+
+exclude = [
+ "conf",
+ "gir-files",
"libostree-sys",
- "libostree"
+
]
+
+[package.metadata.docs.rs]
+features = ["dox"]
+
+[badges.gitlab]
+repository = "fkrull/rust-libostree"
+
+[lib]
+name = "libostree"
+
+[dependencies]
+libc = "0.2"
+bitflags = "1"
+lazy_static = "1.1"
+glib = "0.6"
+gio = "0.5"
+glib-sys = "0.7"
+gobject-sys = "0.7"
+gio-sys = "0.7"
+libostree-sys = { version = "0.1", path = "libostree-sys" }
+
+[dev-dependencies]
+tempfile = "3"
+
+[features]
+dox = ["libostree-sys/dox"]
+v2014_9 = ["libostree-sys/v2014_9"]
+v2015_7 = ["v2014_9", "libostree-sys/v2015_7"]
+v2017_3 = ["v2015_7", "libostree-sys/v2017_3"]
+v2017_4 = ["v2017_3", "libostree-sys/v2017_4"]
+v2017_6 = ["v2017_4", "libostree-sys/v2017_6"]
+v2017_7 = ["v2017_6", "libostree-sys/v2017_7"]
+v2017_8 = ["v2017_7", "libostree-sys/v2017_8"]
+v2017_9 = ["v2017_8", "libostree-sys/v2017_9"]
+v2017_10 = ["v2017_9", "libostree-sys/v2017_10"]
+v2017_11 = ["v2017_10", "libostree-sys/v2017_11"]
+v2017_12 = ["v2017_11", "libostree-sys/v2017_12"]
+v2017_13 = ["v2017_12", "libostree-sys/v2017_13"]
+v2017_15 = ["v2017_13", "libostree-sys/v2017_15"]
+v2018_2 = ["v2017_15", "libostree-sys/v2018_2"]
+v2018_3 = ["v2018_2", "libostree-sys/v2018_3"]
+v2018_5 = ["v2018_3", "libostree-sys/v2018_5"]
+v2018_6 = ["v2018_5", "libostree-sys/v2018_6"]
+v2018_7 = ["v2018_6", "libostree-sys/v2018_7"]
work_mode = "normal"
library = "OSTree"
version = "1.0"
-target_path = "../libostree"
+target_path = ".."
doc_target_path = "../target/vendor.md"
deprecate_by_min_version = true
+++ /dev/null
-[package]
-name = "libostree"
-version = "0.1.1"
-authors = ["Felix Krull"]
-
-license = "MIT"
-description = "Rust bindings for libostree"
-keywords = ["ostree", "libostree"]
-
-documentation = "https://fkrull.gitlab.io/rust-libostree/libostree"
-repository = "https://gitlab.com/fkrull/rust-libostree"
-readme = "README.md"
-
-[package.metadata.docs.rs]
-features = ["dox"]
-
-[badges.gitlab]
-repository = "fkrull/rust-libostree"
-
-[lib]
-name = "libostree"
-
-[dependencies]
-libc = "0.2"
-bitflags = "1"
-lazy_static = "1.1"
-glib = "0.6"
-gio = "0.5"
-glib-sys = "0.7"
-gobject-sys = "0.7"
-gio-sys = "0.7"
-libostree-sys = { version = "0.1", path = "../libostree-sys" }
-
-[dev-dependencies]
-tempfile = "3"
-
-[features]
-dox = ["libostree-sys/dox"]
-v2014_9 = ["libostree-sys/v2014_9"]
-v2015_7 = ["v2014_9", "libostree-sys/v2015_7"]
-v2017_3 = ["v2015_7", "libostree-sys/v2017_3"]
-v2017_4 = ["v2017_3", "libostree-sys/v2017_4"]
-v2017_6 = ["v2017_4", "libostree-sys/v2017_6"]
-v2017_7 = ["v2017_6", "libostree-sys/v2017_7"]
-v2017_8 = ["v2017_7", "libostree-sys/v2017_8"]
-v2017_9 = ["v2017_8", "libostree-sys/v2017_9"]
-v2017_10 = ["v2017_9", "libostree-sys/v2017_10"]
-v2017_11 = ["v2017_10", "libostree-sys/v2017_11"]
-v2017_12 = ["v2017_11", "libostree-sys/v2017_12"]
-v2017_13 = ["v2017_12", "libostree-sys/v2017_13"]
-v2017_15 = ["v2017_13", "libostree-sys/v2017_15"]
-v2018_2 = ["v2017_15", "libostree-sys/v2018_2"]
-v2018_3 = ["v2018_2", "libostree-sys/v2018_3"]
-v2018_5 = ["v2018_3", "libostree-sys/v2018_5"]
-v2018_6 = ["v2018_5", "libostree-sys/v2018_6"]
-v2018_7 = ["v2018_6", "libostree-sys/v2018_7"]
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib;
-use glib::object::Downcast;
-use glib::object::IsA;
-use glib::signal::SignalHandlerId;
-use glib::signal::connect;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::boxed::Box as Box_;
-use std::mem;
-use std::mem::transmute;
-use std::ptr;
-
-glib_wrapper! {
- pub struct AsyncProgress(Object<ffi::OstreeAsyncProgress, ffi::OstreeAsyncProgressClass>);
-
- match fn {
- get_type => || ffi::ostree_async_progress_get_type(),
- }
-}
-
-impl AsyncProgress {
- pub fn new() -> AsyncProgress {
- unsafe {
- from_glib_full(ffi::ostree_async_progress_new())
- }
- }
-
- //pub fn new_and_connect<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(changed: P, user_data: Q) -> AsyncProgress {
- // unsafe { TODO: call ffi::ostree_async_progress_new_and_connect() }
- //}
-}
-
-impl Default for AsyncProgress {
- fn default() -> Self {
- Self::new()
- }
-}
-
-pub trait AsyncProgressExt {
- fn finish(&self);
-
- //#[cfg(any(feature = "v2017_6", feature = "dox"))]
- //fn get(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn get_status(&self) -> Option<String>;
-
- fn get_uint(&self, key: &str) -> u32;
-
- fn get_uint64(&self, key: &str) -> u64;
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn get_variant(&self, key: &str) -> Option<glib::Variant>;
-
- //#[cfg(any(feature = "v2017_6", feature = "dox"))]
- //fn set(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn set_status<'a, P: Into<Option<&'a str>>>(&self, status: P);
-
- fn set_uint(&self, key: &str, value: u32);
-
- fn set_uint64(&self, key: &str, value: u64);
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn set_variant(&self, key: &str, value: &glib::Variant);
-
- fn connect_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
-}
-
-impl<O: IsA<AsyncProgress> + IsA<glib::object::Object>> AsyncProgressExt for O {
- fn finish(&self) {
- unsafe {
- ffi::ostree_async_progress_finish(self.to_glib_none().0);
- }
- }
-
- //#[cfg(any(feature = "v2017_6", feature = "dox"))]
- //fn get(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
- // unsafe { TODO: call ffi::ostree_async_progress_get() }
- //}
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn get_status(&self) -> Option<String> {
- unsafe {
- from_glib_full(ffi::ostree_async_progress_get_status(self.to_glib_none().0))
- }
- }
-
- fn get_uint(&self, key: &str) -> u32 {
- unsafe {
- ffi::ostree_async_progress_get_uint(self.to_glib_none().0, key.to_glib_none().0)
- }
- }
-
- fn get_uint64(&self, key: &str) -> u64 {
- unsafe {
- ffi::ostree_async_progress_get_uint64(self.to_glib_none().0, key.to_glib_none().0)
- }
- }
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn get_variant(&self, key: &str) -> Option<glib::Variant> {
- unsafe {
- from_glib_full(ffi::ostree_async_progress_get_variant(self.to_glib_none().0, key.to_glib_none().0))
- }
- }
-
- //#[cfg(any(feature = "v2017_6", feature = "dox"))]
- //fn set(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
- // unsafe { TODO: call ffi::ostree_async_progress_set() }
- //}
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn set_status<'a, P: Into<Option<&'a str>>>(&self, status: P) {
- let status = status.into();
- let status = status.to_glib_none();
- unsafe {
- ffi::ostree_async_progress_set_status(self.to_glib_none().0, status.0);
- }
- }
-
- fn set_uint(&self, key: &str, value: u32) {
- unsafe {
- ffi::ostree_async_progress_set_uint(self.to_glib_none().0, key.to_glib_none().0, value);
- }
- }
-
- fn set_uint64(&self, key: &str, value: u64) {
- unsafe {
- ffi::ostree_async_progress_set_uint64(self.to_glib_none().0, key.to_glib_none().0, value);
- }
- }
-
- #[cfg(any(feature = "v2017_6", feature = "dox"))]
- fn set_variant(&self, key: &str, value: &glib::Variant) {
- unsafe {
- ffi::ostree_async_progress_set_variant(self.to_glib_none().0, key.to_glib_none().0, value.to_glib_none().0);
- }
- }
-
- fn connect_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
- unsafe {
- let f: Box_<Box_<Fn(&Self) + 'static>> = Box_::new(Box_::new(f));
- connect(self.to_glib_none().0, "changed",
- transmute(changed_trampoline::<Self> as usize), Box_::into_raw(f) as *mut _)
- }
- }
-}
-
-unsafe extern "C" fn changed_trampoline<P>(this: *mut ffi::OstreeAsyncProgress, f: glib_ffi::gpointer)
-where P: IsA<AsyncProgress> {
- let f: &&(Fn(&P) + 'static) = transmute(f);
- f(&AsyncProgress::from_glib_borrow(this).downcast_unchecked())
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::hash;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialOrd, Ord)]
- pub struct CollectionRef(Boxed<ffi::OstreeCollectionRef>);
-
- match fn {
- copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_collection_ref_get_type(), ptr as *mut _) as *mut ffi::OstreeCollectionRef,
- free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_collection_ref_get_type(), ptr as *mut _),
- get_type => || ffi::ostree_collection_ref_get_type(),
- }
-}
-
-impl CollectionRef {
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn new<'a, P: Into<Option<&'a str>>>(collection_id: P, ref_name: &str) -> CollectionRef {
- let collection_id = collection_id.into();
- let collection_id = collection_id.to_glib_none();
- unsafe {
- from_glib_full(ffi::ostree_collection_ref_new(collection_id.0, ref_name.to_glib_none().0))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn dup(&self) -> Option<CollectionRef> {
- unsafe {
- from_glib_full(ffi::ostree_collection_ref_dup(self.to_glib_none().0))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn dupv(refs: &[&CollectionRef]) -> Vec<CollectionRef> {
- unsafe {
- FromGlibPtrContainer::from_glib_full(ffi::ostree_collection_ref_dupv(refs.to_glib_none().0))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn equal<'a, P: Into<Option<&'a CollectionRef>>>(&self, ref2: P) -> bool {
- unsafe {
- from_glib(ffi::ostree_collection_ref_equal(ToGlibPtr::<*mut ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer, ToGlibPtr::<*mut ffi::OstreeCollectionRef>::to_glib_none(ref2).0 as glib_ffi::gconstpointer))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn freev(refs: &[&CollectionRef]) {
- unsafe {
- ffi::ostree_collection_ref_freev(refs.to_glib_full());
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn hash(&self) -> u32 {
- unsafe {
- ffi::ostree_collection_ref_hash(ToGlibPtr::<*mut ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer)
- }
- }
-}
-
-impl PartialEq for CollectionRef {
- #[inline]
- fn eq(&self, other: &Self) -> bool {
- self.equal(other)
- }
-}
-
-impl Eq for CollectionRef {}
-
-impl hash::Hash for CollectionRef {
- #[inline]
- fn hash<H>(&self, state: &mut H) where H: hash::Hasher {
- hash::Hash::hash(&self.hash(), state)
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use std::ffi::CStr;
-
-lazy_static! {
- pub static ref COMMIT_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_GVARIANT_STRING).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-lazy_static! {
- pub static ref COMMIT_META_KEY_COLLECTION_BINDING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_COLLECTION_BINDING).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2017_7", feature = "dox"))]
-lazy_static! {
- pub static ref COMMIT_META_KEY_ENDOFLIFE: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_ENDOFLIFE).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2017_7", feature = "dox"))]
-lazy_static! {
- pub static ref COMMIT_META_KEY_ENDOFLIFE_REBASE: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_ENDOFLIFE_REBASE).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2017_9", feature = "dox"))]
-lazy_static! {
- pub static ref COMMIT_META_KEY_REF_BINDING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_REF_BINDING).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2017_13", feature = "dox"))]
-lazy_static! {
- pub static ref COMMIT_META_KEY_SOURCE_TITLE: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_SOURCE_TITLE).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2014_9", feature = "dox"))]
-lazy_static! {
- pub static ref COMMIT_META_KEY_VERSION: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_VERSION).to_str().unwrap()};
-}
-lazy_static! {
- pub static ref DIRMETA_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_DIRMETA_GVARIANT_STRING).to_str().unwrap()};
-}
-lazy_static! {
- pub static ref FILEMETA_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_FILEMETA_GVARIANT_STRING).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2018_3", feature = "dox"))]
-lazy_static! {
- pub static ref ORIGIN_TRANSIENT_GROUP: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_ORIGIN_TRANSIENT_GROUP).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-lazy_static! {
- pub static ref REPO_METADATA_REF: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_REPO_METADATA_REF).to_str().unwrap()};
-}
-lazy_static! {
- pub static ref SUMMARY_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_SUMMARY_GVARIANT_STRING).to_str().unwrap()};
-}
-lazy_static! {
- pub static ref SUMMARY_SIG_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_SUMMARY_SIG_GVARIANT_STRING).to_str().unwrap()};
-}
-lazy_static! {
- pub static ref TREE_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_TREE_GVARIANT_STRING).to_str().unwrap()};
-}
-#[cfg(any(feature = "v2017_4", feature = "dox"))]
-lazy_static! {
- pub static ref VERSION_S: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_VERSION_S).to_str().unwrap()};
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum GpgSignatureFormatFlags {
- GpgSignatureFormatDefault,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for GpgSignatureFormatFlags {
- type GlibType = ffi::OstreeGpgSignatureFormatFlags;
-
- fn to_glib(&self) -> ffi::OstreeGpgSignatureFormatFlags {
- match *self {
- GpgSignatureFormatFlags::GpgSignatureFormatDefault => ffi::OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT,
- GpgSignatureFormatFlags::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeGpgSignatureFormatFlags> for GpgSignatureFormatFlags {
- fn from_glib(value: ffi::OstreeGpgSignatureFormatFlags) -> Self {
- match value {
- 0 => GpgSignatureFormatFlags::GpgSignatureFormatDefault,
- value => GpgSignatureFormatFlags::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum ObjectType {
- File,
- DirTree,
- DirMeta,
- Commit,
- TombstoneCommit,
- CommitMeta,
- PayloadLink,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for ObjectType {
- type GlibType = ffi::OstreeObjectType;
-
- fn to_glib(&self) -> ffi::OstreeObjectType {
- match *self {
- ObjectType::File => ffi::OSTREE_OBJECT_TYPE_FILE,
- ObjectType::DirTree => ffi::OSTREE_OBJECT_TYPE_DIR_TREE,
- ObjectType::DirMeta => ffi::OSTREE_OBJECT_TYPE_DIR_META,
- ObjectType::Commit => ffi::OSTREE_OBJECT_TYPE_COMMIT,
- ObjectType::TombstoneCommit => ffi::OSTREE_OBJECT_TYPE_TOMBSTONE_COMMIT,
- ObjectType::CommitMeta => ffi::OSTREE_OBJECT_TYPE_COMMIT_META,
- ObjectType::PayloadLink => ffi::OSTREE_OBJECT_TYPE_PAYLOAD_LINK,
- ObjectType::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeObjectType> for ObjectType {
- fn from_glib(value: ffi::OstreeObjectType) -> Self {
- match value {
- 1 => ObjectType::File,
- 2 => ObjectType::DirTree,
- 3 => ObjectType::DirMeta,
- 4 => ObjectType::Commit,
- 5 => ObjectType::TombstoneCommit,
- 6 => ObjectType::CommitMeta,
- 7 => ObjectType::PayloadLink,
- value => ObjectType::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum RepoCheckoutMode {
- None,
- User,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoCheckoutMode {
- type GlibType = ffi::OstreeRepoCheckoutMode;
-
- fn to_glib(&self) -> ffi::OstreeRepoCheckoutMode {
- match *self {
- RepoCheckoutMode::None => ffi::OSTREE_REPO_CHECKOUT_MODE_NONE,
- RepoCheckoutMode::User => ffi::OSTREE_REPO_CHECKOUT_MODE_USER,
- RepoCheckoutMode::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoCheckoutMode> for RepoCheckoutMode {
- fn from_glib(value: ffi::OstreeRepoCheckoutMode) -> Self {
- match value {
- 0 => RepoCheckoutMode::None,
- 1 => RepoCheckoutMode::User,
- value => RepoCheckoutMode::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum RepoCheckoutOverwriteMode {
- None,
- UnionFiles,
- AddFiles,
- UnionIdentical,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoCheckoutOverwriteMode {
- type GlibType = ffi::OstreeRepoCheckoutOverwriteMode;
-
- fn to_glib(&self) -> ffi::OstreeRepoCheckoutOverwriteMode {
- match *self {
- RepoCheckoutOverwriteMode::None => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_NONE,
- RepoCheckoutOverwriteMode::UnionFiles => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_FILES,
- RepoCheckoutOverwriteMode::AddFiles => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_ADD_FILES,
- RepoCheckoutOverwriteMode::UnionIdentical => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_IDENTICAL,
- RepoCheckoutOverwriteMode::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoCheckoutOverwriteMode> for RepoCheckoutOverwriteMode {
- fn from_glib(value: ffi::OstreeRepoCheckoutOverwriteMode) -> Self {
- match value {
- 0 => RepoCheckoutOverwriteMode::None,
- 1 => RepoCheckoutOverwriteMode::UnionFiles,
- 2 => RepoCheckoutOverwriteMode::AddFiles,
- 3 => RepoCheckoutOverwriteMode::UnionIdentical,
- value => RepoCheckoutOverwriteMode::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum RepoMode {
- Bare,
- Archive,
- BareUser,
- BareUserOnly,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoMode {
- type GlibType = ffi::OstreeRepoMode;
-
- fn to_glib(&self) -> ffi::OstreeRepoMode {
- match *self {
- RepoMode::Bare => ffi::OSTREE_REPO_MODE_BARE,
- RepoMode::Archive => ffi::OSTREE_REPO_MODE_ARCHIVE,
- RepoMode::BareUser => ffi::OSTREE_REPO_MODE_BARE_USER,
- RepoMode::BareUserOnly => ffi::OSTREE_REPO_MODE_BARE_USER_ONLY,
- RepoMode::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoMode> for RepoMode {
- fn from_glib(value: ffi::OstreeRepoMode) -> Self {
- match value {
- 0 => RepoMode::Bare,
- 1 => RepoMode::Archive,
- 2 => RepoMode::BareUser,
- 3 => RepoMode::BareUserOnly,
- value => RepoMode::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum RepoPruneFlags {
- None,
- NoPrune,
- RefsOnly,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoPruneFlags {
- type GlibType = ffi::OstreeRepoPruneFlags;
-
- fn to_glib(&self) -> ffi::OstreeRepoPruneFlags {
- match *self {
- RepoPruneFlags::None => ffi::OSTREE_REPO_PRUNE_FLAGS_NONE,
- RepoPruneFlags::NoPrune => ffi::OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE,
- RepoPruneFlags::RefsOnly => ffi::OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY,
- RepoPruneFlags::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoPruneFlags> for RepoPruneFlags {
- fn from_glib(value: ffi::OstreeRepoPruneFlags) -> Self {
- match value {
- 0 => RepoPruneFlags::None,
- 1 => RepoPruneFlags::NoPrune,
- 2 => RepoPruneFlags::RefsOnly,
- value => RepoPruneFlags::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum RepoRemoteChange {
- Add,
- AddIfNotExists,
- Delete,
- DeleteIfExists,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoRemoteChange {
- type GlibType = ffi::OstreeRepoRemoteChange;
-
- fn to_glib(&self) -> ffi::OstreeRepoRemoteChange {
- match *self {
- RepoRemoteChange::Add => ffi::OSTREE_REPO_REMOTE_CHANGE_ADD,
- RepoRemoteChange::AddIfNotExists => ffi::OSTREE_REPO_REMOTE_CHANGE_ADD_IF_NOT_EXISTS,
- RepoRemoteChange::Delete => ffi::OSTREE_REPO_REMOTE_CHANGE_DELETE,
- RepoRemoteChange::DeleteIfExists => ffi::OSTREE_REPO_REMOTE_CHANGE_DELETE_IF_EXISTS,
- RepoRemoteChange::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoRemoteChange> for RepoRemoteChange {
- fn from_glib(value: ffi::OstreeRepoRemoteChange) -> Self {
- match value {
- 0 => RepoRemoteChange::Add,
- 1 => RepoRemoteChange::AddIfNotExists,
- 2 => RepoRemoteChange::Delete,
- 3 => RepoRemoteChange::DeleteIfExists,
- value => RepoRemoteChange::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum RepoResolveRevExtFlags {
- RepoResolveRevExtNone,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoResolveRevExtFlags {
- type GlibType = ffi::OstreeRepoResolveRevExtFlags;
-
- fn to_glib(&self) -> ffi::OstreeRepoResolveRevExtFlags {
- match *self {
- RepoResolveRevExtFlags::RepoResolveRevExtNone => ffi::OSTREE_REPO_RESOLVE_REV_EXT_NONE,
- RepoResolveRevExtFlags::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoResolveRevExtFlags> for RepoResolveRevExtFlags {
- fn from_glib(value: ffi::OstreeRepoResolveRevExtFlags) -> Self {
- match value {
- 0 => RepoResolveRevExtFlags::RepoResolveRevExtNone,
- value => RepoResolveRevExtFlags::__Unknown(value),
- }
- }
-}
-
-#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
-#[derive(Clone, Copy)]
-pub enum StaticDeltaGenerateOpt {
- Lowlatency,
- Major,
- #[doc(hidden)]
- __Unknown(i32),
-}
-
-#[doc(hidden)]
-impl ToGlib for StaticDeltaGenerateOpt {
- type GlibType = ffi::OstreeStaticDeltaGenerateOpt;
-
- fn to_glib(&self) -> ffi::OstreeStaticDeltaGenerateOpt {
- match *self {
- StaticDeltaGenerateOpt::Lowlatency => ffi::OSTREE_STATIC_DELTA_GENERATE_OPT_LOWLATENCY,
- StaticDeltaGenerateOpt::Major => ffi::OSTREE_STATIC_DELTA_GENERATE_OPT_MAJOR,
- StaticDeltaGenerateOpt::__Unknown(value) => value
- }
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeStaticDeltaGenerateOpt> for StaticDeltaGenerateOpt {
- fn from_glib(value: ffi::OstreeStaticDeltaGenerateOpt) -> Self {
- match value {
- 0 => StaticDeltaGenerateOpt::Lowlatency,
- 1 => StaticDeltaGenerateOpt::Major,
- value => StaticDeltaGenerateOpt::__Unknown(value),
- }
- }
-}
-
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-
-#[cfg(any(feature = "v2015_7", feature = "dox"))]
-bitflags! {
- pub struct RepoCommitState: u32 {
- const NORMAL = 0;
- const PARTIAL = 1;
- }
-}
-
-#[cfg(any(feature = "v2015_7", feature = "dox"))]
-#[doc(hidden)]
-impl ToGlib for RepoCommitState {
- type GlibType = ffi::OstreeRepoCommitState;
-
- fn to_glib(&self) -> ffi::OstreeRepoCommitState {
- self.bits()
- }
-}
-
-#[cfg(any(feature = "v2015_7", feature = "dox"))]
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoCommitState> for RepoCommitState {
- fn from_glib(value: ffi::OstreeRepoCommitState) -> RepoCommitState {
- RepoCommitState::from_bits_truncate(value)
- }
-}
-
-bitflags! {
- pub struct RepoListRefsExtFlags: u32 {
- const NONE = 0;
- const ALIASES = 1;
- const EXCLUDE_REMOTES = 2;
- }
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoListRefsExtFlags {
- type GlibType = ffi::OstreeRepoListRefsExtFlags;
-
- fn to_glib(&self) -> ffi::OstreeRepoListRefsExtFlags {
- self.bits()
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoListRefsExtFlags> for RepoListRefsExtFlags {
- fn from_glib(value: ffi::OstreeRepoListRefsExtFlags) -> RepoListRefsExtFlags {
- RepoListRefsExtFlags::from_bits_truncate(value)
- }
-}
-
-bitflags! {
- pub struct RepoPullFlags: u32 {
- const NONE = 0;
- const MIRROR = 1;
- const COMMIT_ONLY = 2;
- const UNTRUSTED = 4;
- const BAREUSERONLY_FILES = 8;
- const TRUSTED_HTTP = 16;
- }
-}
-
-#[doc(hidden)]
-impl ToGlib for RepoPullFlags {
- type GlibType = ffi::OstreeRepoPullFlags;
-
- fn to_glib(&self) -> ffi::OstreeRepoPullFlags {
- self.bits()
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeRepoPullFlags> for RepoPullFlags {
- fn from_glib(value: ffi::OstreeRepoPullFlags) -> RepoPullFlags {
- RepoPullFlags::from_bits_truncate(value)
- }
-}
-
-bitflags! {
- pub struct SePolicyRestoreconFlags: u32 {
- const NONE = 0;
- const ALLOW_NOLABEL = 1;
- const KEEP_EXISTING = 2;
- }
-}
-
-#[doc(hidden)]
-impl ToGlib for SePolicyRestoreconFlags {
- type GlibType = ffi::OstreeSePolicyRestoreconFlags;
-
- fn to_glib(&self) -> ffi::OstreeSePolicyRestoreconFlags {
- self.bits()
- }
-}
-
-#[doc(hidden)]
-impl FromGlib<ffi::OstreeSePolicyRestoreconFlags> for SePolicyRestoreconFlags {
- fn from_glib(value: ffi::OstreeSePolicyRestoreconFlags) -> SePolicyRestoreconFlags {
- SePolicyRestoreconFlags::from_bits_truncate(value)
- }
-}
-
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use Error;
-use ObjectType;
-use ffi;
-use gio;
-use glib;
-use glib::object::IsA;
-use glib::translate::*;
-use std::mem;
-use std::ptr;
-
-
-#[cfg(any(feature = "v2017_15", feature = "dox"))]
-pub fn break_hardlink<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, skip_xattrs: bool, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_break_hardlink(dfd, path.to_glib_none().0, skip_xattrs.to_glib(), cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn check_version(required_year: u32, required_release: u32) -> bool {
- unsafe {
- from_glib(ffi::ostree_check_version(required_year, required_release))
- }
-}
-
-//pub fn checksum_b64_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32) -> Option<String> {
-// unsafe { TODO: call ffi::ostree_checksum_b64_from_bytes() }
-//}
-
-//pub fn checksum_b64_inplace_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, buf: &str) {
-// unsafe { TODO: call ffi::ostree_checksum_b64_inplace_from_bytes() }
-//}
-
-//pub fn checksum_b64_inplace_to_bytes(checksum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 28 }; 32, buf: u8) {
-// unsafe { TODO: call ffi::ostree_checksum_b64_inplace_to_bytes() }
-//}
-
-//pub fn checksum_b64_to_bytes(checksum: &str) -> /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32 {
-// unsafe { TODO: call ffi::ostree_checksum_b64_to_bytes() }
-//}
-
-//pub fn checksum_bytes_peek(bytes: &glib::Variant) -> /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32 {
-// unsafe { TODO: call ffi::ostree_checksum_bytes_peek() }
-//}
-
-//pub fn checksum_bytes_peek_validate(bytes: &glib::Variant) -> Result</*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, Error> {
-// unsafe { TODO: call ffi::ostree_checksum_bytes_peek_validate() }
-//}
-
-//pub fn checksum_file<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(f: &P, objtype: ObjectType, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: Q) -> Result<(), Error> {
-// unsafe { TODO: call ffi::ostree_checksum_file() }
-//}
-
-//pub fn checksum_file_async<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>, R: /*Ignored*/gio::AsyncReadyCallback>(f: &P, objtype: ObjectType, io_priority: i32, cancellable: Q, callback: R) {
-// unsafe { TODO: call ffi::ostree_checksum_file_async() }
-//}
-
-//#[cfg(any(feature = "v2017_13", feature = "dox"))]
-//pub fn checksum_file_at<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, stbuf: P, objtype: ObjectType, flags: /*Ignored*/ChecksumFlags, out_checksum: &str, cancellable: Q) -> Result<(), Error> {
-// unsafe { TODO: call ffi::ostree_checksum_file_at() }
-//}
-
-//pub fn checksum_file_from_input<'a, 'b, 'c, P: Into<Option<&'a glib::Variant>>, Q: IsA<gio::InputStream> + 'b, R: Into<Option<&'b Q>>, S: Into<Option<&'c gio::Cancellable>>>(file_info: &gio::FileInfo, xattrs: P, in_: R, objtype: ObjectType, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: S) -> Result<(), Error> {
-// unsafe { TODO: call ffi::ostree_checksum_file_from_input() }
-//}
-
-//pub fn checksum_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32) -> Option<String> {
-// unsafe { TODO: call ffi::ostree_checksum_from_bytes() }
-//}
-
-pub fn checksum_from_bytes_v(csum_v: &glib::Variant) -> Option<String> {
- unsafe {
- from_glib_full(ffi::ostree_checksum_from_bytes_v(csum_v.to_glib_none().0))
- }
-}
-
-//pub fn checksum_inplace_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, buf: &str) {
-// unsafe { TODO: call ffi::ostree_checksum_inplace_from_bytes() }
-//}
-
-//pub fn checksum_to_bytes(checksum: &str) -> /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32 {
-// unsafe { TODO: call ffi::ostree_checksum_to_bytes() }
-//}
-
-pub fn checksum_to_bytes_v(checksum: &str) -> Option<glib::Variant> {
- unsafe {
- from_glib_full(ffi::ostree_checksum_to_bytes_v(checksum.to_glib_none().0))
- }
-}
-
-//pub fn cmd__private__() -> /*Ignored*/Option<CmdPrivateVTable> {
-// unsafe { TODO: call ffi::ostree_cmd__private__() }
-//}
-
-pub fn commit_get_content_checksum(commit_variant: &glib::Variant) -> Option<String> {
- unsafe {
- from_glib_full(ffi::ostree_commit_get_content_checksum(commit_variant.to_glib_none().0))
- }
-}
-
-pub fn commit_get_parent(commit_variant: &glib::Variant) -> Option<String> {
- unsafe {
- from_glib_full(ffi::ostree_commit_get_parent(commit_variant.to_glib_none().0))
- }
-}
-
-pub fn commit_get_timestamp(commit_variant: &glib::Variant) -> u64 {
- unsafe {
- ffi::ostree_commit_get_timestamp(commit_variant.to_glib_none().0)
- }
-}
-
-pub fn content_file_parse<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(compressed: bool, content_path: &P, trusted: bool, cancellable: Q) -> Result<(gio::InputStream, gio::FileInfo, glib::Variant), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut out_file_info = ptr::null_mut();
- let mut out_xattrs = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_content_file_parse(compressed.to_glib(), content_path.to_glib_none().0, trusted.to_glib(), &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn content_file_parse_at<'a, P: Into<Option<&'a gio::Cancellable>>>(compressed: bool, parent_dfd: i32, path: &str, trusted: bool, cancellable: P) -> Result<(gio::InputStream, gio::FileInfo, glib::Variant), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut out_file_info = ptr::null_mut();
- let mut out_xattrs = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_content_file_parse_at(compressed.to_glib(), parent_dfd, path.to_glib_none().0, trusted.to_glib(), &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn content_stream_parse<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(compressed: bool, input: &P, input_length: u64, trusted: bool, cancellable: Q) -> Result<(gio::InputStream, gio::FileInfo, glib::Variant), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut out_file_info = ptr::null_mut();
- let mut out_xattrs = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_content_stream_parse(compressed.to_glib(), input.to_glib_none().0, input_length, trusted.to_glib(), &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn create_directory_metadata<'a, P: Into<Option<&'a glib::Variant>>>(dir_info: &gio::FileInfo, xattrs: P) -> Option<glib::Variant> {
- let xattrs = xattrs.into();
- let xattrs = xattrs.to_glib_none();
- unsafe {
- from_glib_full(ffi::ostree_create_directory_metadata(dir_info.to_glib_none().0, xattrs.0))
- }
-}
-
-//pub fn diff_dirs<'a, P: IsA<gio::File>, Q: IsA<gio::File>, R: Into<Option<&'a gio::Cancellable>>>(flags: /*Ignored*/DiffFlags, a: &P, b: &Q, modified: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 1, id: 24 }, removed: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, added: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, cancellable: R) -> Result<(), Error> {
-// unsafe { TODO: call ffi::ostree_diff_dirs() }
-//}
-
-//pub fn diff_dirs_with_options<'a, 'b, P: IsA<gio::File>, Q: IsA<gio::File>, R: Into<Option<&'a /*Ignored*/DiffDirsOptions>>, S: Into<Option<&'b gio::Cancellable>>>(flags: /*Ignored*/DiffFlags, a: &P, b: &Q, modified: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 1, id: 24 }, removed: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, added: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, options: R, cancellable: S) -> Result<(), Error> {
-// unsafe { TODO: call ffi::ostree_diff_dirs_with_options() }
-//}
-
-//pub fn diff_print<P: IsA<gio::File>, Q: IsA<gio::File>>(a: &P, b: &Q, modified: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 1, id: 24 }, removed: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, added: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }) {
-// unsafe { TODO: call ffi::ostree_diff_print() }
-//}
-
-//pub fn gpg_error_quark() -> /*Ignored*/glib::Quark {
-// unsafe { TODO: call ffi::ostree_gpg_error_quark() }
-//}
-
-//pub fn hash_object_name<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(a: P) -> u32 {
-// unsafe { TODO: call ffi::ostree_hash_object_name() }
-//}
-
-//pub fn metadata_variant_type(objtype: ObjectType) -> /*Ignored*/Option<glib::VariantType> {
-// unsafe { TODO: call ffi::ostree_metadata_variant_type() }
-//}
-
-pub fn object_from_string(str: &str) -> (String, ObjectType) {
- unsafe {
- let mut out_checksum = ptr::null_mut();
- let mut out_objtype = mem::uninitialized();
- ffi::ostree_object_from_string(str.to_glib_none().0, &mut out_checksum, &mut out_objtype);
- (from_glib_full(out_checksum), from_glib(out_objtype))
- }
-}
-
-pub fn object_name_deserialize(variant: &glib::Variant) -> (String, ObjectType) {
- unsafe {
- let mut out_checksum = ptr::null();
- let mut out_objtype = mem::uninitialized();
- ffi::ostree_object_name_deserialize(variant.to_glib_none().0, &mut out_checksum, &mut out_objtype);
- (from_glib_none(out_checksum), from_glib(out_objtype))
- }
-}
-
-pub fn object_name_serialize(checksum: &str, objtype: ObjectType) -> Option<glib::Variant> {
- unsafe {
- from_glib_none(ffi::ostree_object_name_serialize(checksum.to_glib_none().0, objtype.to_glib()))
- }
-}
-
-pub fn object_to_string(checksum: &str, objtype: ObjectType) -> Option<String> {
- unsafe {
- from_glib_full(ffi::ostree_object_to_string(checksum.to_glib_none().0, objtype.to_glib()))
- }
-}
-
-pub fn object_type_from_string(str: &str) -> ObjectType {
- unsafe {
- from_glib(ffi::ostree_object_type_from_string(str.to_glib_none().0))
- }
-}
-
-pub fn object_type_to_string(objtype: ObjectType) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_object_type_to_string(objtype.to_glib()))
- }
-}
-
-pub fn parse_refspec(refspec: &str) -> Result<(Option<String>, String), Error> {
- unsafe {
- let mut out_remote = ptr::null_mut();
- let mut out_ref = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_parse_refspec(refspec.to_glib_none().0, &mut out_remote, &mut out_ref, &mut error);
- if error.is_null() { Ok((from_glib_full(out_remote), from_glib_full(out_ref))) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn raw_file_to_archive_z2_stream<'a, 'b, P: IsA<gio::InputStream>, Q: Into<Option<&'a glib::Variant>>, R: Into<Option<&'b gio::Cancellable>>>(input: &P, file_info: &gio::FileInfo, xattrs: Q, cancellable: R) -> Result<gio::InputStream, Error> {
- let xattrs = xattrs.into();
- let xattrs = xattrs.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_raw_file_to_archive_z2_stream(input.to_glib_none().0, file_info.to_glib_none().0, xattrs.0, &mut out_input, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_input)) } else { Err(from_glib_full(error)) }
- }
-}
-
-#[cfg(any(feature = "v2017_3", feature = "dox"))]
-pub fn raw_file_to_archive_z2_stream_with_options<'a, 'b, 'c, P: IsA<gio::InputStream>, Q: Into<Option<&'a glib::Variant>>, R: Into<Option<&'b glib::Variant>>, S: Into<Option<&'c gio::Cancellable>>>(input: &P, file_info: &gio::FileInfo, xattrs: Q, options: R, cancellable: S) -> Result<gio::InputStream, Error> {
- let xattrs = xattrs.into();
- let xattrs = xattrs.to_glib_none();
- let options = options.into();
- let options = options.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_raw_file_to_archive_z2_stream_with_options(input.to_glib_none().0, file_info.to_glib_none().0, xattrs.0, options.0, &mut out_input, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_input)) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn raw_file_to_content_stream<'a, 'b, P: IsA<gio::InputStream>, Q: Into<Option<&'a glib::Variant>>, R: Into<Option<&'b gio::Cancellable>>>(input: &P, file_info: &gio::FileInfo, xattrs: Q, cancellable: R) -> Result<(gio::InputStream, u64), Error> {
- let xattrs = xattrs.into();
- let xattrs = xattrs.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut out_length = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_raw_file_to_content_stream(input.to_glib_none().0, file_info.to_glib_none().0, xattrs.0, &mut out_input, &mut out_length, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_input), out_length)) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_checksum_string(sha256: &str) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_checksum_string(sha256.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-pub fn validate_collection_id<'a, P: Into<Option<&'a str>>>(collection_id: P) -> Result<(), Error> {
- let collection_id = collection_id.into();
- let collection_id = collection_id.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_collection_id(collection_id.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-#[cfg(any(feature = "v2017_8", feature = "dox"))]
-pub fn validate_remote_name(remote_name: &str) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_remote_name(remote_name.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_rev(rev: &str) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_rev(rev.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_checksum_string(checksum: &str) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_checksum_string(checksum.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_commit(commit: &glib::Variant) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_commit(commit.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_csum_v(checksum: &glib::Variant) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_csum_v(checksum.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_dirmeta(dirmeta: &glib::Variant) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_dirmeta(dirmeta.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_dirtree(dirtree: &glib::Variant) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_dirtree(dirtree.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_file_mode(mode: u32) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_file_mode(mode, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
-
-pub fn validate_structureof_objtype(objtype: u8) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_validate_structureof_objtype(objtype, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use Error;
-use GpgSignatureFormatFlags;
-use ffi;
-use glib;
-use glib::object::IsA;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- pub struct GpgVerifyResult(Object<ffi::OstreeGpgVerifyResult>);
-
- match fn {
- get_type => || ffi::ostree_gpg_verify_result_get_type(),
- }
-}
-
-impl GpgVerifyResult {
- pub fn describe_variant<'a, P: Into<Option<&'a str>>>(variant: &glib::Variant, output_buffer: &mut glib::String, line_prefix: P, flags: GpgSignatureFormatFlags) {
- let line_prefix = line_prefix.into();
- let line_prefix = line_prefix.to_glib_none();
- unsafe {
- ffi::ostree_gpg_verify_result_describe_variant(variant.to_glib_none().0, output_buffer.to_glib_none_mut().0, line_prefix.0, flags.to_glib());
- }
- }
-}
-
-pub trait GpgVerifyResultExt {
- fn count_all(&self) -> u32;
-
- fn count_valid(&self) -> u32;
-
- fn describe<'a, P: Into<Option<&'a str>>>(&self, signature_index: u32, output_buffer: &mut glib::String, line_prefix: P, flags: GpgSignatureFormatFlags);
-
- //fn get(&self, signature_index: u32, attrs: /*Unimplemented*/&CArray TypeId { ns_id: 1, id: 26 }) -> Option<glib::Variant>;
-
- fn get_all(&self, signature_index: u32) -> Option<glib::Variant>;
-
- fn lookup(&self, key_id: &str) -> Option<u32>;
-
- fn require_valid_signature(&self) -> Result<(), Error>;
-}
-
-impl<O: IsA<GpgVerifyResult>> GpgVerifyResultExt for O {
- fn count_all(&self) -> u32 {
- unsafe {
- ffi::ostree_gpg_verify_result_count_all(self.to_glib_none().0)
- }
- }
-
- fn count_valid(&self) -> u32 {
- unsafe {
- ffi::ostree_gpg_verify_result_count_valid(self.to_glib_none().0)
- }
- }
-
- fn describe<'a, P: Into<Option<&'a str>>>(&self, signature_index: u32, output_buffer: &mut glib::String, line_prefix: P, flags: GpgSignatureFormatFlags) {
- let line_prefix = line_prefix.into();
- let line_prefix = line_prefix.to_glib_none();
- unsafe {
- ffi::ostree_gpg_verify_result_describe(self.to_glib_none().0, signature_index, output_buffer.to_glib_none_mut().0, line_prefix.0, flags.to_glib());
- }
- }
-
- //fn get(&self, signature_index: u32, attrs: /*Unimplemented*/&CArray TypeId { ns_id: 1, id: 26 }) -> Option<glib::Variant> {
- // unsafe { TODO: call ffi::ostree_gpg_verify_result_get() }
- //}
-
- fn get_all(&self, signature_index: u32) -> Option<glib::Variant> {
- unsafe {
- from_glib_full(ffi::ostree_gpg_verify_result_get_all(self.to_glib_none().0, signature_index))
- }
- }
-
- fn lookup(&self, key_id: &str) -> Option<u32> {
- unsafe {
- let mut out_signature_index = mem::uninitialized();
- let ret = from_glib(ffi::ostree_gpg_verify_result_lookup(self.to_glib_none().0, key_id.to_glib_none().0, &mut out_signature_index));
- if ret { Some(out_signature_index) } else { None }
- }
- }
-
- fn require_valid_signature(&self) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_gpg_verify_result_require_valid_signature(self.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-mod async_progress;
-pub use self::async_progress::AsyncProgress;
-pub use self::async_progress::AsyncProgressExt;
-
-mod gpg_verify_result;
-pub use self::gpg_verify_result::GpgVerifyResult;
-pub use self::gpg_verify_result::GpgVerifyResultExt;
-
-mod mutable_tree;
-pub use self::mutable_tree::MutableTree;
-pub use self::mutable_tree::MutableTreeExt;
-
-mod repo;
-pub use self::repo::Repo;
-pub use self::repo::RepoExt;
-
-mod repo_file;
-pub use self::repo_file::RepoFile;
-pub use self::repo_file::RepoFileExt;
-
-mod se_policy;
-pub use self::se_policy::SePolicy;
-pub use self::se_policy::SePolicyExt;
-
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-mod collection_ref;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-pub use self::collection_ref::CollectionRef;
-
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-mod remote;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-pub use self::remote::Remote;
-
-mod repo_commit_modifier;
-pub use self::repo_commit_modifier::RepoCommitModifier;
-
-mod repo_dev_ino_cache;
-pub use self::repo_dev_ino_cache::RepoDevInoCache;
-
-mod repo_transaction_stats;
-pub use self::repo_transaction_stats::RepoTransactionStats;
-
-mod enums;
-pub use self::enums::GpgSignatureFormatFlags;
-pub use self::enums::ObjectType;
-pub use self::enums::RepoCheckoutMode;
-pub use self::enums::RepoCheckoutOverwriteMode;
-pub use self::enums::RepoMode;
-pub use self::enums::RepoPruneFlags;
-pub use self::enums::RepoRemoteChange;
-pub use self::enums::RepoResolveRevExtFlags;
-pub use self::enums::StaticDeltaGenerateOpt;
-
-mod flags;
-#[cfg(any(feature = "v2015_7", feature = "dox"))]
-pub use self::flags::RepoCommitState;
-pub use self::flags::RepoListRefsExtFlags;
-pub use self::flags::RepoPullFlags;
-pub use self::flags::SePolicyRestoreconFlags;
-
-pub mod functions;
-
-mod constants;
-pub use self::constants::COMMIT_GVARIANT_STRING;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-pub use self::constants::COMMIT_META_KEY_COLLECTION_BINDING;
-#[cfg(any(feature = "v2017_7", feature = "dox"))]
-pub use self::constants::COMMIT_META_KEY_ENDOFLIFE;
-#[cfg(any(feature = "v2017_7", feature = "dox"))]
-pub use self::constants::COMMIT_META_KEY_ENDOFLIFE_REBASE;
-#[cfg(any(feature = "v2017_9", feature = "dox"))]
-pub use self::constants::COMMIT_META_KEY_REF_BINDING;
-#[cfg(any(feature = "v2017_13", feature = "dox"))]
-pub use self::constants::COMMIT_META_KEY_SOURCE_TITLE;
-#[cfg(any(feature = "v2014_9", feature = "dox"))]
-pub use self::constants::COMMIT_META_KEY_VERSION;
-pub use self::constants::DIRMETA_GVARIANT_STRING;
-pub use self::constants::FILEMETA_GVARIANT_STRING;
-#[cfg(any(feature = "v2018_3", feature = "dox"))]
-pub use self::constants::ORIGIN_TRANSIENT_GROUP;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-pub use self::constants::REPO_METADATA_REF;
-pub use self::constants::SUMMARY_GVARIANT_STRING;
-pub use self::constants::SUMMARY_SIG_GVARIANT_STRING;
-pub use self::constants::TREE_GVARIANT_STRING;
-#[cfg(any(feature = "v2017_4", feature = "dox"))]
-pub use self::constants::VERSION_S;
-
-#[doc(hidden)]
-pub mod traits {
- pub use super::AsyncProgressExt;
- pub use super::GpgVerifyResultExt;
- pub use super::MutableTreeExt;
- pub use super::RepoExt;
- pub use super::RepoFileExt;
- pub use super::SePolicyExt;
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use Error;
-use Repo;
-use ffi;
-use glib::object::IsA;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- pub struct MutableTree(Object<ffi::OstreeMutableTree, ffi::OstreeMutableTreeClass>);
-
- match fn {
- get_type => || ffi::ostree_mutable_tree_get_type(),
- }
-}
-
-impl MutableTree {
- pub fn new() -> MutableTree {
- unsafe {
- from_glib_full(ffi::ostree_mutable_tree_new())
- }
- }
-
- pub fn new_from_checksum(repo: &Repo, contents_checksum: &str, metadata_checksum: &str) -> MutableTree {
- unsafe {
- from_glib_full(ffi::ostree_mutable_tree_new_from_checksum(repo.to_glib_none().0, contents_checksum.to_glib_none().0, metadata_checksum.to_glib_none().0))
- }
- }
-}
-
-impl Default for MutableTree {
- fn default() -> Self {
- Self::new()
- }
-}
-
-pub trait MutableTreeExt {
- #[cfg(any(feature = "v2018_7", feature = "dox"))]
- fn check_error(&self) -> Result<(), Error>;
-
- fn ensure_dir(&self, name: &str) -> Result<MutableTree, Error>;
-
- //fn ensure_parent_dirs(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, metadata_checksum: &str) -> Result<MutableTree, Error>;
-
- fn fill_empty_from_dirtree(&self, repo: &Repo, contents_checksum: &str, metadata_checksum: &str) -> bool;
-
- fn get_contents_checksum(&self) -> Option<String>;
-
- //fn get_files(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 };
-
- fn get_metadata_checksum(&self) -> Option<String>;
-
- //fn get_subdirs(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 1, id: 37 };
-
- fn replace_file(&self, name: &str, checksum: &str) -> Result<(), Error>;
-
- fn set_contents_checksum(&self, checksum: &str);
-
- fn set_metadata_checksum(&self, checksum: &str);
-
- //fn walk(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, start: u32) -> Result<MutableTree, Error>;
-}
-
-impl<O: IsA<MutableTree>> MutableTreeExt for O {
- #[cfg(any(feature = "v2018_7", feature = "dox"))]
- fn check_error(&self) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_mutable_tree_check_error(self.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn ensure_dir(&self, name: &str) -> Result<MutableTree, Error> {
- unsafe {
- let mut out_subdir = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_mutable_tree_ensure_dir(self.to_glib_none().0, name.to_glib_none().0, &mut out_subdir, &mut error);
- if error.is_null() { Ok(from_glib_full(out_subdir)) } else { Err(from_glib_full(error)) }
- }
- }
-
- //fn ensure_parent_dirs(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, metadata_checksum: &str) -> Result<MutableTree, Error> {
- // unsafe { TODO: call ffi::ostree_mutable_tree_ensure_parent_dirs() }
- //}
-
- fn fill_empty_from_dirtree(&self, repo: &Repo, contents_checksum: &str, metadata_checksum: &str) -> bool {
- unsafe {
- from_glib(ffi::ostree_mutable_tree_fill_empty_from_dirtree(self.to_glib_none().0, repo.to_glib_none().0, contents_checksum.to_glib_none().0, metadata_checksum.to_glib_none().0))
- }
- }
-
- fn get_contents_checksum(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_mutable_tree_get_contents_checksum(self.to_glib_none().0))
- }
- }
-
- //fn get_files(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 } {
- // unsafe { TODO: call ffi::ostree_mutable_tree_get_files() }
- //}
-
- fn get_metadata_checksum(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_mutable_tree_get_metadata_checksum(self.to_glib_none().0))
- }
- }
-
- //fn get_subdirs(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 1, id: 37 } {
- // unsafe { TODO: call ffi::ostree_mutable_tree_get_subdirs() }
- //}
-
- fn replace_file(&self, name: &str, checksum: &str) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_mutable_tree_replace_file(self.to_glib_none().0, name.to_glib_none().0, checksum.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn set_contents_checksum(&self, checksum: &str) {
- unsafe {
- ffi::ostree_mutable_tree_set_contents_checksum(self.to_glib_none().0, checksum.to_glib_none().0);
- }
- }
-
- fn set_metadata_checksum(&self, checksum: &str) {
- unsafe {
- ffi::ostree_mutable_tree_set_metadata_checksum(self.to_glib_none().0, checksum.to_glib_none().0);
- }
- }
-
- //fn walk(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, start: u32) -> Result<MutableTree, Error> {
- // unsafe { TODO: call ffi::ostree_mutable_tree_walk() }
- //}
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
- pub struct Remote(Shared<ffi::OstreeRemote>);
-
- match fn {
- ref => |ptr| ffi::ostree_remote_ref(ptr),
- unref => |ptr| ffi::ostree_remote_unref(ptr),
- get_type => || ffi::ostree_remote_get_type(),
- }
-}
-
-impl Remote {
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn get_name(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_remote_get_name(self.to_glib_none().0))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn get_url(&self) -> Option<String> {
- unsafe {
- from_glib_full(ffi::ostree_remote_get_url(self.to_glib_none().0))
- }
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use AsyncProgress;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-use CollectionRef;
-use Error;
-use GpgVerifyResult;
-use MutableTree;
-use ObjectType;
-#[cfg(any(feature = "v2018_6", feature = "dox"))]
-use Remote;
-use RepoCheckoutMode;
-use RepoCheckoutOverwriteMode;
-use RepoCommitModifier;
-#[cfg(any(feature = "v2015_7", feature = "dox"))]
-use RepoCommitState;
-use RepoFile;
-use RepoMode;
-use RepoPruneFlags;
-use RepoPullFlags;
-use RepoRemoteChange;
-use RepoResolveRevExtFlags;
-use RepoTransactionStats;
-use StaticDeltaGenerateOpt;
-use ffi;
-use gio;
-use glib;
-use glib::StaticType;
-use glib::Value;
-use glib::object::Downcast;
-use glib::object::IsA;
-use glib::signal::SignalHandlerId;
-use glib::signal::connect;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use libc;
-use std::boxed::Box as Box_;
-use std::mem;
-use std::mem::transmute;
-use std::ptr;
-
-glib_wrapper! {
- pub struct Repo(Object<ffi::OstreeRepo>);
-
- match fn {
- get_type => || ffi::ostree_repo_get_type(),
- }
-}
-
-impl Repo {
- pub fn new<P: IsA<gio::File>>(path: &P) -> Repo {
- unsafe {
- from_glib_full(ffi::ostree_repo_new(path.to_glib_none().0))
- }
- }
-
- pub fn new_default() -> Repo {
- unsafe {
- from_glib_full(ffi::ostree_repo_new_default())
- }
- }
-
- pub fn new_for_sysroot_path<P: IsA<gio::File>, Q: IsA<gio::File>>(repo_path: &P, sysroot_path: &Q) -> Repo {
- unsafe {
- from_glib_full(ffi::ostree_repo_new_for_sysroot_path(repo_path.to_glib_none().0, sysroot_path.to_glib_none().0))
- }
- }
-
- pub fn create_at<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, mode: RepoMode, options: &glib::Variant, cancellable: P) -> Result<Repo, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_create_at(dfd, path.to_glib_none().0, mode.to_glib(), options.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- pub fn open_at<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, cancellable: P) -> Result<Repo, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_open_at(dfd, path.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- //pub fn pull_default_console_progress_changed<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(progress: &AsyncProgress, user_data: P) {
- // unsafe { TODO: call ffi::ostree_repo_pull_default_console_progress_changed() }
- //}
-
- //#[cfg(any(feature = "v2018_5", feature = "dox"))]
- //pub fn traverse_new_parents() -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 } {
- // unsafe { TODO: call ffi::ostree_repo_traverse_new_parents() }
- //}
-
- //pub fn traverse_new_reachable() -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 } {
- // unsafe { TODO: call ffi::ostree_repo_traverse_new_reachable() }
- //}
-
- //#[cfg(any(feature = "v2018_5", feature = "dox"))]
- //pub fn traverse_parents_get_commits(parents: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, object: &glib::Variant) -> Vec<String> {
- // unsafe { TODO: call ffi::ostree_repo_traverse_parents_get_commits() }
- //}
-}
-
-pub trait RepoExt {
- fn abort_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
-
- fn add_gpg_signature_summary<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, key_id: &[&str], homedir: P, cancellable: Q) -> Result<(), Error>;
-
- fn append_gpg_signature<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, signature_bytes: &glib::Bytes, cancellable: P) -> Result<(), Error>;
-
- //fn checkout_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutAtOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error>;
-
- fn checkout_gc<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
-
- fn checkout_tree<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoCheckoutMode, overwrite_mode: RepoCheckoutOverwriteMode, destination: &P, source: &RepoFile, source_info: &gio::FileInfo, cancellable: Q) -> Result<(), Error>;
-
- //fn checkout_tree_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error>;
-
- fn commit_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<RepoTransactionStats, Error>;
-
- fn copy_config(&self) -> Option<glib::KeyFile>;
-
- fn create<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoMode, cancellable: P) -> Result<(), Error>;
-
- fn delete_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2017_12", feature = "dox"))]
- fn equal(&self, b: &Repo) -> bool;
-
- //fn export_tree_to_archive<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoExportArchiveOptions, root: &RepoFile, archive: P, cancellable: Q) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2017_15", feature = "dox"))]
- fn fsck_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn get_collection_id(&self) -> Option<String>;
-
- fn get_config(&self) -> Option<glib::KeyFile>;
-
- fn get_dfd(&self) -> i32;
-
- fn get_disable_fsync(&self) -> bool;
-
- fn get_mode(&self) -> RepoMode;
-
- fn get_parent(&self) -> Option<Repo>;
-
- fn get_path(&self) -> Option<gio::File>;
-
- fn get_remote_boolean_option(&self, remote_name: &str, option_name: &str, default_value: bool) -> Result<bool, Error>;
-
- fn get_remote_list_option(&self, remote_name: &str, option_name: &str) -> Result<Vec<String>, Error>;
-
- fn get_remote_option<'a, P: Into<Option<&'a str>>>(&self, remote_name: &str, option_name: &str, default_value: P) -> Result<String, Error>;
-
- fn gpg_verify_data<'a, 'b, 'c, 'd, P: Into<Option<&'a str>>, Q: IsA<gio::File> + 'b, R: Into<Option<&'b Q>>, S: IsA<gio::File> + 'c, T: Into<Option<&'c S>>, U: Into<Option<&'d gio::Cancellable>>>(&self, remote_name: P, data: &glib::Bytes, signatures: &glib::Bytes, keyringdir: R, extra_keyring: T, cancellable: U) -> Result<GpgVerifyResult, Error>;
-
- fn has_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<bool, Error>;
-
- #[cfg(any(feature = "v2017_12", feature = "dox"))]
- fn hash(&self) -> u32;
-
- //fn import_archive_to_mtree<'a, 'b, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoImportArchiveOptions, archive: P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error>;
-
- fn import_object_from<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(), Error>;
-
- fn import_object_from_with_trust<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, trusted: bool, cancellable: P) -> Result<(), Error>;
-
- fn is_system(&self) -> bool;
-
- fn is_writable(&self) -> Result<(), Error>;
-
- //#[cfg(any(feature = "v2018_6", feature = "dox"))]
- //fn list_collection_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, match_collection_id: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error>;
-
- //fn list_commit_objects_starting_with<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, start: &str, out_commits: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
-
- //fn list_objects<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: /*Ignored*/RepoListObjectsFlags, out_objects: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
-
- //fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: Q) -> Result<(), Error>;
-
- //fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error>;
-
- //fn list_static_delta_names<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, out_deltas: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2015_7", feature = "dox"))]
- fn load_commit(&self, checksum: &str) -> Result<(glib::Variant, RepoCommitState), Error>;
-
- fn load_file<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<(Option<gio::InputStream>, Option<gio::FileInfo>, Option<glib::Variant>), Error>;
-
- fn load_object_stream<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(gio::InputStream, u64), Error>;
-
- fn load_variant(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error>;
-
- fn load_variant_if_exists(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error>;
-
- #[cfg(any(feature = "v2017_15", feature = "dox"))]
- fn mark_commit_partial(&self, checksum: &str, is_partial: bool) -> Result<(), Error>;
-
- fn open<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
-
- fn prepare_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<bool, Error>;
-
- fn prune<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: RepoPruneFlags, depth: i32, cancellable: P) -> Result<(i32, i32, u64), Error>;
-
- //fn prune_from_reachable<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, options: /*Ignored*/&mut RepoPruneOptions, cancellable: P) -> Result<(i32, i32, u64), Error>;
-
- fn prune_static_deltas<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit: P, cancellable: Q) -> Result<(), Error>;
-
- fn pull<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error>;
-
- fn pull_one_dir<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, dir_to_pull: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error>;
-
- fn pull_with_options<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name_or_baseurl: &str, options: &glib::Variant, progress: P, cancellable: Q) -> Result<(), Error>;
-
- fn query_object_storage_size<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<u64, Error>;
-
- fn read_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &str, cancellable: P) -> Result<(gio::File, String), Error>;
-
- fn read_commit_detached_metadata<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<glib::Variant, Error>;
-
- fn regenerate_summary<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, additional_metadata: P, cancellable: Q) -> Result<(), Error>;
-
- fn reload_config<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
-
- fn remote_add<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, url: &str, options: P, cancellable: Q) -> Result<(), Error>;
-
- fn remote_change<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: Into<Option<&'b glib::Variant>>, S: Into<Option<&'c gio::Cancellable>>>(&self, sysroot: Q, changeop: RepoRemoteChange, name: &str, url: &str, options: R, cancellable: S) -> Result<(), Error>;
-
- fn remote_delete<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(), Error>;
-
- fn remote_fetch_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(glib::Bytes, glib::Bytes), Error>;
-
- fn remote_fetch_summary_with_options<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, options: P, cancellable: Q) -> Result<(glib::Bytes, glib::Bytes), Error>;
-
- fn remote_get_gpg_verify(&self, name: &str) -> Result<bool, Error>;
-
- fn remote_get_gpg_verify_summary(&self, name: &str) -> Result<bool, Error>;
-
- fn remote_get_url(&self, name: &str) -> Result<String, Error>;
-
- fn remote_list(&self) -> Vec<String>;
-
- //#[cfg(any(feature = "v2018_6", feature = "dox"))]
- //fn remote_list_collection_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error>;
-
- //fn remote_list_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn resolve_collection_ref<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &CollectionRef, allow_noent: bool, flags: RepoResolveRevExtFlags, cancellable: P) -> Result<Option<String>, Error>;
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn resolve_keyring_for_collection<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, collection_id: &str, cancellable: P) -> Result<Remote, Error>;
-
- fn resolve_rev(&self, refspec: &str, allow_noent: bool) -> Result<String, Error>;
-
- fn resolve_rev_ext(&self, refspec: &str, allow_noent: bool, flags: RepoResolveRevExtFlags) -> Result<String, Error>;
-
- fn scan_hardlinks<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
-
- fn set_alias_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, target: Q, cancellable: R) -> Result<(), Error>;
-
- fn set_cache_dir<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, dfd: i32, path: &str, cancellable: P) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn set_collection_id<'a, P: Into<Option<&'a str>>>(&self, collection_id: P) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn set_collection_ref_immediate<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, ref_: &CollectionRef, checksum: P, cancellable: Q) -> Result<(), Error>;
-
- fn set_disable_fsync(&self, disable_fsync: bool);
-
- fn set_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, checksum: Q, cancellable: R) -> Result<(), Error>;
-
- fn sign_commit<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit_checksum: &str, key_id: &str, homedir: P, cancellable: Q) -> Result<(), Error>;
-
- fn sign_delta<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, from_commit: &str, to_commit: &str, key_id: &str, homedir: &str, cancellable: P) -> Result<(), Error>;
-
- fn static_delta_execute_offline<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, dir_or_file: &P, skip_validation: bool, cancellable: Q) -> Result<(), Error>;
-
- fn static_delta_generate<'a, 'b, 'c, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b glib::Variant>>, R: Into<Option<&'c gio::Cancellable>>>(&self, opt: StaticDeltaGenerateOpt, from: &str, to: &str, metadata: P, params: Q, cancellable: R) -> Result<(), Error>;
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn transaction_set_collection_ref<'a, P: Into<Option<&'a str>>>(&self, ref_: &CollectionRef, checksum: P);
-
- fn transaction_set_ref<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>>(&self, remote: P, ref_: &str, checksum: Q);
-
- fn transaction_set_refspec<'a, P: Into<Option<&'a str>>>(&self, refspec: &str, checksum: P);
-
- //fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, out_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
-
- //fn traverse_commit_union<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error>;
-
- //#[cfg(any(feature = "v2018_5", feature = "dox"))]
- //fn traverse_commit_union_with_parents<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, inout_parents: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error>;
-
- //#[cfg(any(feature = "v2018_6", feature = "dox"))]
- //fn traverse_reachable_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, depth: u32, reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
-
- fn verify_commit<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<(), Error>;
-
- fn verify_commit_ext<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<GpgVerifyResult, Error>;
-
- fn verify_commit_for_remote<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, remote_name: &str, cancellable: P) -> Result<GpgVerifyResult, Error>;
-
- fn verify_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, summary: &glib::Bytes, signatures: &glib::Bytes, cancellable: P) -> Result<GpgVerifyResult, Error>;
-
- fn write_archive_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, archive: &P, mtree: &MutableTree, modifier: Q, autocreate_parents: bool, cancellable: R) -> Result<(), Error>;
-
- fn write_commit<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, cancellable: T) -> Result<String, Error>;
-
- fn write_commit_detached_metadata<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, checksum: &str, metadata: P, cancellable: Q) -> Result<(), Error>;
-
- fn write_commit_with_time<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, time: u64, cancellable: T) -> Result<String, Error>;
-
- fn write_config(&self, new_config: &glib::KeyFile) -> Result<(), Error>;
-
- //fn write_content<'a, 'b, P: Into<Option<&'a str>>, Q: IsA<gio::InputStream>, R: Into<Option<&'b gio::Cancellable>>>(&self, expected_checksum: P, object_input: &Q, length: u64, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: R) -> Result<(), Error>;
-
- fn write_content_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error>;
-
- fn write_dfd_to_mtree<'a, 'b, P: Into<Option<&'a RepoCommitModifier>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, dfd: i32, path: &str, mtree: &MutableTree, modifier: P, cancellable: Q) -> Result<(), Error>;
-
- fn write_directory_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, dir: &P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error>;
-
- //fn write_metadata<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, objtype: ObjectType, expected_checksum: P, object: &glib::Variant, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: Q) -> Result<(), Error>;
-
- fn write_metadata_stream_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error>;
-
- fn write_metadata_trusted<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, variant: &glib::Variant, cancellable: P) -> Result<(), Error>;
-
- fn write_mtree<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mtree: &MutableTree, cancellable: P) -> Result<gio::File, Error>;
-
- fn get_property_remotes_config_dir(&self) -> Option<String>;
-
- fn get_property_sysroot_path(&self) -> Option<gio::File>;
-
- fn connect_gpg_verify_result<F: Fn(&Self, &str, &GpgVerifyResult) + 'static>(&self, f: F) -> SignalHandlerId;
-}
-
-impl<O: IsA<Repo> + IsA<glib::object::Object>> RepoExt for O {
- fn abort_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_abort_transaction(self.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn add_gpg_signature_summary<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, key_id: &[&str], homedir: P, cancellable: Q) -> Result<(), Error> {
- let homedir = homedir.into();
- let homedir = homedir.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_add_gpg_signature_summary(self.to_glib_none().0, key_id.to_glib_none().0, homedir.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn append_gpg_signature<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, signature_bytes: &glib::Bytes, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_append_gpg_signature(self.to_glib_none().0, commit_checksum.to_glib_none().0, signature_bytes.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- //fn checkout_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutAtOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_checkout_at() }
- //}
-
- fn checkout_gc<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_checkout_gc(self.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn checkout_tree<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoCheckoutMode, overwrite_mode: RepoCheckoutOverwriteMode, destination: &P, source: &RepoFile, source_info: &gio::FileInfo, cancellable: Q) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_checkout_tree(self.to_glib_none().0, mode.to_glib(), overwrite_mode.to_glib(), destination.to_glib_none().0, source.to_glib_none().0, source_info.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- //fn checkout_tree_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_checkout_tree_at() }
- //}
-
- fn commit_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<RepoTransactionStats, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_stats = RepoTransactionStats::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_commit_transaction(self.to_glib_none().0, out_stats.to_glib_none_mut().0, cancellable.0, &mut error);
- if error.is_null() { Ok(out_stats) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn copy_config(&self) -> Option<glib::KeyFile> {
- unsafe {
- from_glib_full(ffi::ostree_repo_copy_config(self.to_glib_none().0))
- }
- }
-
- fn create<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoMode, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_create(self.to_glib_none().0, mode.to_glib(), cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn delete_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_delete_object(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2017_12", feature = "dox"))]
- fn equal(&self, b: &Repo) -> bool {
- unsafe {
- from_glib(ffi::ostree_repo_equal(self.to_glib_none().0, b.to_glib_none().0))
- }
- }
-
- //fn export_tree_to_archive<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoExportArchiveOptions, root: &RepoFile, archive: P, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_export_tree_to_archive() }
- //}
-
- #[cfg(any(feature = "v2017_15", feature = "dox"))]
- fn fsck_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_fsck_object(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn get_collection_id(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_repo_get_collection_id(self.to_glib_none().0))
- }
- }
-
- fn get_config(&self) -> Option<glib::KeyFile> {
- unsafe {
- from_glib_none(ffi::ostree_repo_get_config(self.to_glib_none().0))
- }
- }
-
- fn get_dfd(&self) -> i32 {
- unsafe {
- ffi::ostree_repo_get_dfd(self.to_glib_none().0)
- }
- }
-
- fn get_disable_fsync(&self) -> bool {
- unsafe {
- from_glib(ffi::ostree_repo_get_disable_fsync(self.to_glib_none().0))
- }
- }
-
- fn get_mode(&self) -> RepoMode {
- unsafe {
- from_glib(ffi::ostree_repo_get_mode(self.to_glib_none().0))
- }
- }
-
- fn get_parent(&self) -> Option<Repo> {
- unsafe {
- from_glib_none(ffi::ostree_repo_get_parent(self.to_glib_none().0))
- }
- }
-
- fn get_path(&self) -> Option<gio::File> {
- unsafe {
- from_glib_none(ffi::ostree_repo_get_path(self.to_glib_none().0))
- }
- }
-
- fn get_remote_boolean_option(&self, remote_name: &str, option_name: &str, default_value: bool) -> Result<bool, Error> {
- unsafe {
- let mut out_value = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_get_remote_boolean_option(self.to_glib_none().0, remote_name.to_glib_none().0, option_name.to_glib_none().0, default_value.to_glib(), &mut out_value, &mut error);
- if error.is_null() { Ok(from_glib(out_value)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn get_remote_list_option(&self, remote_name: &str, option_name: &str) -> Result<Vec<String>, Error> {
- unsafe {
- let mut out_value = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_get_remote_list_option(self.to_glib_none().0, remote_name.to_glib_none().0, option_name.to_glib_none().0, &mut out_value, &mut error);
- if error.is_null() { Ok(FromGlibPtrContainer::from_glib_full(out_value)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn get_remote_option<'a, P: Into<Option<&'a str>>>(&self, remote_name: &str, option_name: &str, default_value: P) -> Result<String, Error> {
- let default_value = default_value.into();
- let default_value = default_value.to_glib_none();
- unsafe {
- let mut out_value = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_get_remote_option(self.to_glib_none().0, remote_name.to_glib_none().0, option_name.to_glib_none().0, default_value.0, &mut out_value, &mut error);
- if error.is_null() { Ok(from_glib_full(out_value)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn gpg_verify_data<'a, 'b, 'c, 'd, P: Into<Option<&'a str>>, Q: IsA<gio::File> + 'b, R: Into<Option<&'b Q>>, S: IsA<gio::File> + 'c, T: Into<Option<&'c S>>, U: Into<Option<&'d gio::Cancellable>>>(&self, remote_name: P, data: &glib::Bytes, signatures: &glib::Bytes, keyringdir: R, extra_keyring: T, cancellable: U) -> Result<GpgVerifyResult, Error> {
- let remote_name = remote_name.into();
- let remote_name = remote_name.to_glib_none();
- let keyringdir = keyringdir.into();
- let keyringdir = keyringdir.to_glib_none();
- let extra_keyring = extra_keyring.into();
- let extra_keyring = extra_keyring.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_gpg_verify_data(self.to_glib_none().0, remote_name.0, data.to_glib_none().0, signatures.to_glib_none().0, keyringdir.0, extra_keyring.0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn has_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<bool, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_have_object = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_has_object(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, &mut out_have_object, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib(out_have_object)) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2017_12", feature = "dox"))]
- fn hash(&self) -> u32 {
- unsafe {
- ffi::ostree_repo_hash(self.to_glib_none().0)
- }
- }
-
- //fn import_archive_to_mtree<'a, 'b, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoImportArchiveOptions, archive: P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_import_archive_to_mtree() }
- //}
-
- fn import_object_from<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_import_object_from(self.to_glib_none().0, source.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn import_object_from_with_trust<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, trusted: bool, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_import_object_from_with_trust(self.to_glib_none().0, source.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, trusted.to_glib(), cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn is_system(&self) -> bool {
- unsafe {
- from_glib(ffi::ostree_repo_is_system(self.to_glib_none().0))
- }
- }
-
- fn is_writable(&self) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_is_writable(self.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- //#[cfg(any(feature = "v2018_6", feature = "dox"))]
- //fn list_collection_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, match_collection_id: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_list_collection_refs() }
- //}
-
- //fn list_commit_objects_starting_with<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, start: &str, out_commits: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_list_commit_objects_starting_with() }
- //}
-
- //fn list_objects<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: /*Ignored*/RepoListObjectsFlags, out_objects: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_list_objects() }
- //}
-
- //fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_list_refs() }
- //}
-
- //fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_list_refs_ext() }
- //}
-
- //fn list_static_delta_names<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, out_deltas: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_list_static_delta_names() }
- //}
-
- #[cfg(any(feature = "v2015_7", feature = "dox"))]
- fn load_commit(&self, checksum: &str) -> Result<(glib::Variant, RepoCommitState), Error> {
- unsafe {
- let mut out_commit = ptr::null_mut();
- let mut out_state = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_load_commit(self.to_glib_none().0, checksum.to_glib_none().0, &mut out_commit, &mut out_state, &mut error);
- if error.is_null() { Ok((from_glib_full(out_commit), from_glib(out_state))) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn load_file<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<(Option<gio::InputStream>, Option<gio::FileInfo>, Option<glib::Variant>), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut out_file_info = ptr::null_mut();
- let mut out_xattrs = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_load_file(self.to_glib_none().0, checksum.to_glib_none().0, &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn load_object_stream<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(gio::InputStream, u64), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_input = ptr::null_mut();
- let mut out_size = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_load_object_stream(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, &mut out_input, &mut out_size, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_input), out_size)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn load_variant(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error> {
- unsafe {
- let mut out_variant = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_load_variant(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, &mut out_variant, &mut error);
- if error.is_null() { Ok(from_glib_full(out_variant)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn load_variant_if_exists(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error> {
- unsafe {
- let mut out_variant = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_load_variant_if_exists(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, &mut out_variant, &mut error);
- if error.is_null() { Ok(from_glib_full(out_variant)) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2017_15", feature = "dox"))]
- fn mark_commit_partial(&self, checksum: &str, is_partial: bool) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_mark_commit_partial(self.to_glib_none().0, checksum.to_glib_none().0, is_partial.to_glib(), &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn open<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_open(self.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn prepare_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<bool, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_transaction_resume = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_prepare_transaction(self.to_glib_none().0, &mut out_transaction_resume, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib(out_transaction_resume)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn prune<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: RepoPruneFlags, depth: i32, cancellable: P) -> Result<(i32, i32, u64), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_objects_total = mem::uninitialized();
- let mut out_objects_pruned = mem::uninitialized();
- let mut out_pruned_object_size_total = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_prune(self.to_glib_none().0, flags.to_glib(), depth, &mut out_objects_total, &mut out_objects_pruned, &mut out_pruned_object_size_total, cancellable.0, &mut error);
- if error.is_null() { Ok((out_objects_total, out_objects_pruned, out_pruned_object_size_total)) } else { Err(from_glib_full(error)) }
- }
- }
-
- //fn prune_from_reachable<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, options: /*Ignored*/&mut RepoPruneOptions, cancellable: P) -> Result<(i32, i32, u64), Error> {
- // unsafe { TODO: call ffi::ostree_repo_prune_from_reachable() }
- //}
-
- fn prune_static_deltas<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit: P, cancellable: Q) -> Result<(), Error> {
- let commit = commit.into();
- let commit = commit.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_prune_static_deltas(self.to_glib_none().0, commit.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn pull<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error> {
- let progress = progress.into();
- let progress = progress.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_pull(self.to_glib_none().0, remote_name.to_glib_none().0, refs_to_fetch.to_glib_none().0, flags.to_glib(), progress.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn pull_one_dir<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, dir_to_pull: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error> {
- let progress = progress.into();
- let progress = progress.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_pull_one_dir(self.to_glib_none().0, remote_name.to_glib_none().0, dir_to_pull.to_glib_none().0, refs_to_fetch.to_glib_none().0, flags.to_glib(), progress.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn pull_with_options<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name_or_baseurl: &str, options: &glib::Variant, progress: P, cancellable: Q) -> Result<(), Error> {
- let progress = progress.into();
- let progress = progress.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_pull_with_options(self.to_glib_none().0, remote_name_or_baseurl.to_glib_none().0, options.to_glib_none().0, progress.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn query_object_storage_size<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<u64, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_size = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_query_object_storage_size(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, &mut out_size, cancellable.0, &mut error);
- if error.is_null() { Ok(out_size) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn read_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &str, cancellable: P) -> Result<(gio::File, String), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_root = ptr::null_mut();
- let mut out_commit = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_read_commit(self.to_glib_none().0, ref_.to_glib_none().0, &mut out_root, &mut out_commit, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_root), from_glib_full(out_commit))) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn read_commit_detached_metadata<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<glib::Variant, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_metadata = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_read_commit_detached_metadata(self.to_glib_none().0, checksum.to_glib_none().0, &mut out_metadata, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_metadata)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn regenerate_summary<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, additional_metadata: P, cancellable: Q) -> Result<(), Error> {
- let additional_metadata = additional_metadata.into();
- let additional_metadata = additional_metadata.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_regenerate_summary(self.to_glib_none().0, additional_metadata.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn reload_config<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_reload_config(self.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_add<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, url: &str, options: P, cancellable: Q) -> Result<(), Error> {
- let options = options.into();
- let options = options.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_add(self.to_glib_none().0, name.to_glib_none().0, url.to_glib_none().0, options.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_change<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: Into<Option<&'b glib::Variant>>, S: Into<Option<&'c gio::Cancellable>>>(&self, sysroot: Q, changeop: RepoRemoteChange, name: &str, url: &str, options: R, cancellable: S) -> Result<(), Error> {
- let sysroot = sysroot.into();
- let sysroot = sysroot.to_glib_none();
- let options = options.into();
- let options = options.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_change(self.to_glib_none().0, sysroot.0, changeop.to_glib(), name.to_glib_none().0, url.to_glib_none().0, options.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_delete<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_delete(self.to_glib_none().0, name.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_fetch_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(glib::Bytes, glib::Bytes), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_summary = ptr::null_mut();
- let mut out_signatures = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_fetch_summary(self.to_glib_none().0, name.to_glib_none().0, &mut out_summary, &mut out_signatures, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_summary), from_glib_full(out_signatures))) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_fetch_summary_with_options<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, options: P, cancellable: Q) -> Result<(glib::Bytes, glib::Bytes), Error> {
- let options = options.into();
- let options = options.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_summary = ptr::null_mut();
- let mut out_signatures = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_fetch_summary_with_options(self.to_glib_none().0, name.to_glib_none().0, options.0, &mut out_summary, &mut out_signatures, cancellable.0, &mut error);
- if error.is_null() { Ok((from_glib_full(out_summary), from_glib_full(out_signatures))) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_get_gpg_verify(&self, name: &str) -> Result<bool, Error> {
- unsafe {
- let mut out_gpg_verify = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_get_gpg_verify(self.to_glib_none().0, name.to_glib_none().0, &mut out_gpg_verify, &mut error);
- if error.is_null() { Ok(from_glib(out_gpg_verify)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_get_gpg_verify_summary(&self, name: &str) -> Result<bool, Error> {
- unsafe {
- let mut out_gpg_verify_summary = mem::uninitialized();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_get_gpg_verify_summary(self.to_glib_none().0, name.to_glib_none().0, &mut out_gpg_verify_summary, &mut error);
- if error.is_null() { Ok(from_glib(out_gpg_verify_summary)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_get_url(&self, name: &str) -> Result<String, Error> {
- unsafe {
- let mut out_url = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_remote_get_url(self.to_glib_none().0, name.to_glib_none().0, &mut out_url, &mut error);
- if error.is_null() { Ok(from_glib_full(out_url)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn remote_list(&self) -> Vec<String> {
- unsafe {
- let mut out_n_remotes = mem::uninitialized();
- let ret = FromGlibContainer::from_glib_full_num(ffi::ostree_repo_remote_list(self.to_glib_none().0, &mut out_n_remotes), out_n_remotes as usize);
- ret
- }
- }
-
- //#[cfg(any(feature = "v2018_6", feature = "dox"))]
- //fn remote_list_collection_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_remote_list_collection_refs() }
- //}
-
- //fn remote_list_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_remote_list_refs() }
- //}
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn resolve_collection_ref<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &CollectionRef, allow_noent: bool, flags: RepoResolveRevExtFlags, cancellable: P) -> Result<Option<String>, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_rev = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_resolve_collection_ref(self.to_glib_none().0, ref_.to_glib_none().0, allow_noent.to_glib(), flags.to_glib(), &mut out_rev, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_rev)) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn resolve_keyring_for_collection<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, collection_id: &str, cancellable: P) -> Result<Remote, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_resolve_keyring_for_collection(self.to_glib_none().0, collection_id.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn resolve_rev(&self, refspec: &str, allow_noent: bool) -> Result<String, Error> {
- unsafe {
- let mut out_rev = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_resolve_rev(self.to_glib_none().0, refspec.to_glib_none().0, allow_noent.to_glib(), &mut out_rev, &mut error);
- if error.is_null() { Ok(from_glib_full(out_rev)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn resolve_rev_ext(&self, refspec: &str, allow_noent: bool, flags: RepoResolveRevExtFlags) -> Result<String, Error> {
- unsafe {
- let mut out_rev = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_resolve_rev_ext(self.to_glib_none().0, refspec.to_glib_none().0, allow_noent.to_glib(), flags.to_glib(), &mut out_rev, &mut error);
- if error.is_null() { Ok(from_glib_full(out_rev)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn scan_hardlinks<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_scan_hardlinks(self.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn set_alias_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, target: Q, cancellable: R) -> Result<(), Error> {
- let remote = remote.into();
- let remote = remote.to_glib_none();
- let target = target.into();
- let target = target.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_set_alias_ref_immediate(self.to_glib_none().0, remote.0, ref_.to_glib_none().0, target.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn set_cache_dir<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, dfd: i32, path: &str, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_set_cache_dir(self.to_glib_none().0, dfd, path.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn set_collection_id<'a, P: Into<Option<&'a str>>>(&self, collection_id: P) -> Result<(), Error> {
- let collection_id = collection_id.into();
- let collection_id = collection_id.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_set_collection_id(self.to_glib_none().0, collection_id.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn set_collection_ref_immediate<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, ref_: &CollectionRef, checksum: P, cancellable: Q) -> Result<(), Error> {
- let checksum = checksum.into();
- let checksum = checksum.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_set_collection_ref_immediate(self.to_glib_none().0, ref_.to_glib_none().0, checksum.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn set_disable_fsync(&self, disable_fsync: bool) {
- unsafe {
- ffi::ostree_repo_set_disable_fsync(self.to_glib_none().0, disable_fsync.to_glib());
- }
- }
-
- fn set_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, checksum: Q, cancellable: R) -> Result<(), Error> {
- let remote = remote.into();
- let remote = remote.to_glib_none();
- let checksum = checksum.into();
- let checksum = checksum.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_set_ref_immediate(self.to_glib_none().0, remote.0, ref_.to_glib_none().0, checksum.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn sign_commit<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit_checksum: &str, key_id: &str, homedir: P, cancellable: Q) -> Result<(), Error> {
- let homedir = homedir.into();
- let homedir = homedir.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_sign_commit(self.to_glib_none().0, commit_checksum.to_glib_none().0, key_id.to_glib_none().0, homedir.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn sign_delta<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, from_commit: &str, to_commit: &str, key_id: &str, homedir: &str, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_sign_delta(self.to_glib_none().0, from_commit.to_glib_none().0, to_commit.to_glib_none().0, key_id.to_glib_none().0, homedir.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn static_delta_execute_offline<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, dir_or_file: &P, skip_validation: bool, cancellable: Q) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_static_delta_execute_offline(self.to_glib_none().0, dir_or_file.to_glib_none().0, skip_validation.to_glib(), cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn static_delta_generate<'a, 'b, 'c, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b glib::Variant>>, R: Into<Option<&'c gio::Cancellable>>>(&self, opt: StaticDeltaGenerateOpt, from: &str, to: &str, metadata: P, params: Q, cancellable: R) -> Result<(), Error> {
- let metadata = metadata.into();
- let metadata = metadata.to_glib_none();
- let params = params.into();
- let params = params.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_static_delta_generate(self.to_glib_none().0, opt.to_glib(), from.to_glib_none().0, to.to_glib_none().0, metadata.0, params.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn transaction_set_collection_ref<'a, P: Into<Option<&'a str>>>(&self, ref_: &CollectionRef, checksum: P) {
- let checksum = checksum.into();
- let checksum = checksum.to_glib_none();
- unsafe {
- ffi::ostree_repo_transaction_set_collection_ref(self.to_glib_none().0, ref_.to_glib_none().0, checksum.0);
- }
- }
-
- fn transaction_set_ref<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>>(&self, remote: P, ref_: &str, checksum: Q) {
- let remote = remote.into();
- let remote = remote.to_glib_none();
- let checksum = checksum.into();
- let checksum = checksum.to_glib_none();
- unsafe {
- ffi::ostree_repo_transaction_set_ref(self.to_glib_none().0, remote.0, ref_.to_glib_none().0, checksum.0);
- }
- }
-
- fn transaction_set_refspec<'a, P: Into<Option<&'a str>>>(&self, refspec: &str, checksum: P) {
- let checksum = checksum.into();
- let checksum = checksum.to_glib_none();
- unsafe {
- ffi::ostree_repo_transaction_set_refspec(self.to_glib_none().0, refspec.to_glib_none().0, checksum.0);
- }
- }
-
- //fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, out_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_traverse_commit() }
- //}
-
- //fn traverse_commit_union<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_traverse_commit_union() }
- //}
-
- //#[cfg(any(feature = "v2018_5", feature = "dox"))]
- //fn traverse_commit_union_with_parents<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, inout_parents: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_traverse_commit_union_with_parents() }
- //}
-
- //#[cfg(any(feature = "v2018_6", feature = "dox"))]
- //fn traverse_reachable_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, depth: u32, reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_traverse_reachable_refs() }
- //}
-
- fn verify_commit<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<(), Error> {
- let keyringdir = keyringdir.into();
- let keyringdir = keyringdir.to_glib_none();
- let extra_keyring = extra_keyring.into();
- let extra_keyring = extra_keyring.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_verify_commit(self.to_glib_none().0, commit_checksum.to_glib_none().0, keyringdir.0, extra_keyring.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn verify_commit_ext<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<GpgVerifyResult, Error> {
- let keyringdir = keyringdir.into();
- let keyringdir = keyringdir.to_glib_none();
- let extra_keyring = extra_keyring.into();
- let extra_keyring = extra_keyring.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_verify_commit_ext(self.to_glib_none().0, commit_checksum.to_glib_none().0, keyringdir.0, extra_keyring.0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn verify_commit_for_remote<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, remote_name: &str, cancellable: P) -> Result<GpgVerifyResult, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_verify_commit_for_remote(self.to_glib_none().0, commit_checksum.to_glib_none().0, remote_name.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn verify_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, summary: &glib::Bytes, signatures: &glib::Bytes, cancellable: P) -> Result<GpgVerifyResult, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_repo_verify_summary(self.to_glib_none().0, remote_name.to_glib_none().0, summary.to_glib_none().0, signatures.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_archive_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, archive: &P, mtree: &MutableTree, modifier: Q, autocreate_parents: bool, cancellable: R) -> Result<(), Error> {
- let modifier = modifier.into();
- let modifier = modifier.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_archive_to_mtree(self.to_glib_none().0, archive.to_glib_none().0, mtree.to_glib_none().0, modifier.0, autocreate_parents.to_glib(), cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_commit<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, cancellable: T) -> Result<String, Error> {
- let parent = parent.into();
- let parent = parent.to_glib_none();
- let subject = subject.into();
- let subject = subject.to_glib_none();
- let body = body.into();
- let body = body.to_glib_none();
- let metadata = metadata.into();
- let metadata = metadata.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_commit = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_commit(self.to_glib_none().0, parent.0, subject.0, body.0, metadata.0, root.to_glib_none().0, &mut out_commit, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_commit)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_commit_detached_metadata<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, checksum: &str, metadata: P, cancellable: Q) -> Result<(), Error> {
- let metadata = metadata.into();
- let metadata = metadata.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_commit_detached_metadata(self.to_glib_none().0, checksum.to_glib_none().0, metadata.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_commit_with_time<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, time: u64, cancellable: T) -> Result<String, Error> {
- let parent = parent.into();
- let parent = parent.to_glib_none();
- let subject = subject.into();
- let subject = subject.to_glib_none();
- let body = body.into();
- let body = body.to_glib_none();
- let metadata = metadata.into();
- let metadata = metadata.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_commit = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_commit_with_time(self.to_glib_none().0, parent.0, subject.0, body.0, metadata.0, root.to_glib_none().0, time, &mut out_commit, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_commit)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_config(&self, new_config: &glib::KeyFile) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_config(self.to_glib_none().0, new_config.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- //fn write_content<'a, 'b, P: Into<Option<&'a str>>, Q: IsA<gio::InputStream>, R: Into<Option<&'b gio::Cancellable>>>(&self, expected_checksum: P, object_input: &Q, length: u64, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: R) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_write_content() }
- //}
-
- fn write_content_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_content_trusted(self.to_glib_none().0, checksum.to_glib_none().0, object_input.to_glib_none().0, length, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_dfd_to_mtree<'a, 'b, P: Into<Option<&'a RepoCommitModifier>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, dfd: i32, path: &str, mtree: &MutableTree, modifier: P, cancellable: Q) -> Result<(), Error> {
- let modifier = modifier.into();
- let modifier = modifier.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_dfd_to_mtree(self.to_glib_none().0, dfd, path.to_glib_none().0, mtree.to_glib_none().0, modifier.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_directory_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, dir: &P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error> {
- let modifier = modifier.into();
- let modifier = modifier.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_directory_to_mtree(self.to_glib_none().0, dir.to_glib_none().0, mtree.to_glib_none().0, modifier.0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- //fn write_metadata<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, objtype: ObjectType, expected_checksum: P, object: &glib::Variant, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: Q) -> Result<(), Error> {
- // unsafe { TODO: call ffi::ostree_repo_write_metadata() }
- //}
-
- fn write_metadata_stream_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_metadata_stream_trusted(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, object_input.to_glib_none().0, length, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_metadata_trusted<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, variant: &glib::Variant, cancellable: P) -> Result<(), Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_metadata_trusted(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, variant.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn write_mtree<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mtree: &MutableTree, cancellable: P) -> Result<gio::File, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_file = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_write_mtree(self.to_glib_none().0, mtree.to_glib_none().0, &mut out_file, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_file)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn get_property_remotes_config_dir(&self) -> Option<String> {
- unsafe {
- let mut value = Value::from_type(<String as StaticType>::static_type());
- gobject_ffi::g_object_get_property(self.to_glib_none().0, "remotes-config-dir".to_glib_none().0, value.to_glib_none_mut().0);
- value.get()
- }
- }
-
- fn get_property_sysroot_path(&self) -> Option<gio::File> {
- unsafe {
- let mut value = Value::from_type(<gio::File as StaticType>::static_type());
- gobject_ffi::g_object_get_property(self.to_glib_none().0, "sysroot-path".to_glib_none().0, value.to_glib_none_mut().0);
- value.get()
- }
- }
-
- fn connect_gpg_verify_result<F: Fn(&Self, &str, &GpgVerifyResult) + 'static>(&self, f: F) -> SignalHandlerId {
- unsafe {
- let f: Box_<Box_<Fn(&Self, &str, &GpgVerifyResult) + 'static>> = Box_::new(Box_::new(f));
- connect(self.to_glib_none().0, "gpg-verify-result",
- transmute(gpg_verify_result_trampoline::<Self> as usize), Box_::into_raw(f) as *mut _)
- }
- }
-}
-
-unsafe extern "C" fn gpg_verify_result_trampoline<P>(this: *mut ffi::OstreeRepo, checksum: *mut libc::c_char, result: *mut ffi::OstreeGpgVerifyResult, f: glib_ffi::gpointer)
-where P: IsA<Repo> {
- let f: &&(Fn(&P, &str, &GpgVerifyResult) + 'static) = transmute(f);
- f(&Repo::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(checksum), &from_glib_borrow(result))
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-#[cfg(any(feature = "v2017_13", feature = "dox"))]
-use RepoDevInoCache;
-use SePolicy;
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
- pub struct RepoCommitModifier(Shared<ffi::OstreeRepoCommitModifier>);
-
- match fn {
- ref => |ptr| ffi::ostree_repo_commit_modifier_ref(ptr),
- unref => |ptr| ffi::ostree_repo_commit_modifier_unref(ptr),
- get_type => || ffi::ostree_repo_commit_modifier_get_type(),
- }
-}
-
-impl RepoCommitModifier {
- //pub fn new<'a, P: Into<Option<&'a /*Unimplemented*/RepoCommitFilter>>>(flags: /*Ignored*/RepoCommitModifierFlags, commit_filter: P, destroy_notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) -> RepoCommitModifier {
- // unsafe { TODO: call ffi::ostree_repo_commit_modifier_new() }
- //}
-
- #[cfg(any(feature = "v2017_13", feature = "dox"))]
- pub fn set_devino_cache(&self, cache: &RepoDevInoCache) {
- unsafe {
- ffi::ostree_repo_commit_modifier_set_devino_cache(self.to_glib_none().0, cache.to_glib_none().0);
- }
- }
-
- pub fn set_sepolicy<'a, P: Into<Option<&'a SePolicy>>>(&self, sepolicy: P) {
- let sepolicy = sepolicy.into();
- let sepolicy = sepolicy.to_glib_none();
- unsafe {
- ffi::ostree_repo_commit_modifier_set_sepolicy(self.to_glib_none().0, sepolicy.0);
- }
- }
-
- //pub fn set_xattr_callback(&self, callback: /*Unknown conversion*//*Unimplemented*/RepoCommitModifierXattrCallback, destroy: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
- // unsafe { TODO: call ffi::ostree_repo_commit_modifier_set_xattr_callback() }
- //}
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
- pub struct RepoDevInoCache(Shared<ffi::OstreeRepoDevInoCache>);
-
- match fn {
- ref => |ptr| ffi::ostree_repo_devino_cache_ref(ptr),
- unref => |ptr| ffi::ostree_repo_devino_cache_unref(ptr),
- get_type => || ffi::ostree_repo_devino_cache_get_type(),
- }
-}
-
-impl RepoDevInoCache {
- pub fn new() -> RepoDevInoCache {
- unsafe {
- from_glib_full(ffi::ostree_repo_devino_cache_new())
- }
- }
-}
-
-impl Default for RepoDevInoCache {
- fn default() -> Self {
- Self::new()
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use Error;
-use Repo;
-use ffi;
-use gio;
-use gio_ffi;
-use glib;
-use glib::object::IsA;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- pub struct RepoFile(Object<ffi::OstreeRepoFile, ffi::OstreeRepoFileClass>): [
- gio::File => gio_ffi::GFile,
- ];
-
- match fn {
- get_type => || ffi::ostree_repo_file_get_type(),
- }
-}
-
-pub trait RepoFileExt {
- fn ensure_resolved(&self) -> Result<(), Error>;
-
- fn get_checksum(&self) -> Option<String>;
-
- fn get_repo(&self) -> Option<Repo>;
-
- fn get_root(&self) -> Option<RepoFile>;
-
- fn tree_get_contents(&self) -> Option<glib::Variant>;
-
- fn tree_get_contents_checksum(&self) -> Option<String>;
-
- fn tree_get_metadata(&self) -> Option<glib::Variant>;
-
- fn tree_get_metadata_checksum(&self) -> Option<String>;
-
- fn tree_set_metadata(&self, checksum: &str, metadata: &glib::Variant);
-}
-
-impl<O: IsA<RepoFile>> RepoFileExt for O {
- fn ensure_resolved(&self) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_repo_file_ensure_resolved(self.to_glib_none().0, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn get_checksum(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_repo_file_get_checksum(self.to_glib_none().0))
- }
- }
-
- fn get_repo(&self) -> Option<Repo> {
- unsafe {
- from_glib_none(ffi::ostree_repo_file_get_repo(self.to_glib_none().0))
- }
- }
-
- fn get_root(&self) -> Option<RepoFile> {
- unsafe {
- from_glib_none(ffi::ostree_repo_file_get_root(self.to_glib_none().0))
- }
- }
-
- fn tree_get_contents(&self) -> Option<glib::Variant> {
- unsafe {
- from_glib_full(ffi::ostree_repo_file_tree_get_contents(self.to_glib_none().0))
- }
- }
-
- fn tree_get_contents_checksum(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_repo_file_tree_get_contents_checksum(self.to_glib_none().0))
- }
- }
-
- fn tree_get_metadata(&self) -> Option<glib::Variant> {
- unsafe {
- from_glib_full(ffi::ostree_repo_file_tree_get_metadata(self.to_glib_none().0))
- }
- }
-
- fn tree_get_metadata_checksum(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_repo_file_tree_get_metadata_checksum(self.to_glib_none().0))
- }
- }
-
- fn tree_set_metadata(&self, checksum: &str, metadata: &glib::Variant) {
- unsafe {
- ffi::ostree_repo_file_tree_set_metadata(self.to_glib_none().0, checksum.to_glib_none().0, metadata.to_glib_none().0);
- }
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
- pub struct RepoTransactionStats(Boxed<ffi::OstreeRepoTransactionStats>);
-
- match fn {
- copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _) as *mut ffi::OstreeRepoTransactionStats,
- free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _),
- get_type => || ffi::ostree_repo_transaction_stats_get_type(),
- }
-}
+++ /dev/null
-// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
-// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
-// DO NOT EDIT
-
-use Error;
-use SePolicyRestoreconFlags;
-use ffi;
-use gio;
-use glib;
-use glib::StaticType;
-use glib::Value;
-use glib::object::IsA;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- pub struct SePolicy(Object<ffi::OstreeSePolicy>);
-
- match fn {
- get_type => || ffi::ostree_sepolicy_get_type(),
- }
-}
-
-impl SePolicy {
- pub fn new<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(path: &P, cancellable: Q) -> Result<SePolicy, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_sepolicy_new(path.to_glib_none().0, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- pub fn new_at<'a, P: Into<Option<&'a gio::Cancellable>>>(rootfs_dfd: i32, cancellable: P) -> Result<SePolicy, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut error = ptr::null_mut();
- let ret = ffi::ostree_sepolicy_new_at(rootfs_dfd, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
- }
- }
-
- //pub fn fscreatecon_cleanup<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(unused: P) {
- // unsafe { TODO: call ffi::ostree_sepolicy_fscreatecon_cleanup() }
- //}
-}
-
-pub trait SePolicyExt {
- fn get_csum(&self) -> Option<String>;
-
- fn get_label<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, relpath: &str, unix_mode: u32, cancellable: P) -> Result<String, Error>;
-
- fn get_name(&self) -> Option<String>;
-
- fn get_path(&self) -> Option<gio::File>;
-
- fn restorecon<'a, 'b, P: Into<Option<&'a gio::FileInfo>>, Q: IsA<gio::File>, R: Into<Option<&'b gio::Cancellable>>>(&self, path: &str, info: P, target: &Q, flags: SePolicyRestoreconFlags, cancellable: R) -> Result<String, Error>;
-
- fn setfscreatecon(&self, path: &str, mode: u32) -> Result<(), Error>;
-
- fn get_property_rootfs_dfd(&self) -> i32;
-}
-
-impl<O: IsA<SePolicy> + IsA<glib::object::Object>> SePolicyExt for O {
- fn get_csum(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_sepolicy_get_csum(self.to_glib_none().0))
- }
- }
-
- fn get_label<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, relpath: &str, unix_mode: u32, cancellable: P) -> Result<String, Error> {
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_label = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_sepolicy_get_label(self.to_glib_none().0, relpath.to_glib_none().0, unix_mode, &mut out_label, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_label)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn get_name(&self) -> Option<String> {
- unsafe {
- from_glib_none(ffi::ostree_sepolicy_get_name(self.to_glib_none().0))
- }
- }
-
- fn get_path(&self) -> Option<gio::File> {
- unsafe {
- from_glib_none(ffi::ostree_sepolicy_get_path(self.to_glib_none().0))
- }
- }
-
- fn restorecon<'a, 'b, P: Into<Option<&'a gio::FileInfo>>, Q: IsA<gio::File>, R: Into<Option<&'b gio::Cancellable>>>(&self, path: &str, info: P, target: &Q, flags: SePolicyRestoreconFlags, cancellable: R) -> Result<String, Error> {
- let info = info.into();
- let info = info.to_glib_none();
- let cancellable = cancellable.into();
- let cancellable = cancellable.to_glib_none();
- unsafe {
- let mut out_new_label = ptr::null_mut();
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_sepolicy_restorecon(self.to_glib_none().0, path.to_glib_none().0, info.0, target.to_glib_none().0, flags.to_glib(), &mut out_new_label, cancellable.0, &mut error);
- if error.is_null() { Ok(from_glib_full(out_new_label)) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn setfscreatecon(&self, path: &str, mode: u32) -> Result<(), Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let _ = ffi::ostree_sepolicy_setfscreatecon(self.to_glib_none().0, path.to_glib_none().0, mode, &mut error);
- if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
- }
- }
-
- fn get_property_rootfs_dfd(&self) -> i32 {
- unsafe {
- let mut value = Value::from_type(<i32 as StaticType>::static_type());
- gobject_ffi::g_object_get_property(self.to_glib_none().0, "rootfs-dfd".to_glib_none().0, value.to_glib_none_mut().0);
- value.get().unwrap()
- }
- }
-}
+++ /dev/null
-extern crate gio_sys as gio_ffi;
-extern crate glib_sys as glib_ffi;
-extern crate gobject_sys as gobject_ffi;
-extern crate libostree_sys as ffi;
-#[macro_use]
-extern crate glib;
-extern crate gio;
-extern crate libc;
-#[macro_use]
-extern crate bitflags;
-#[macro_use]
-extern crate lazy_static;
-
-use glib::Error;
-
-// re-exports
-#[cfg_attr(feature = "cargo-clippy", allow(clippy))]
-mod auto;
-pub use auto::functions::*;
-pub use auto::*;
-
-mod repo;
-
-mod object_name;
-pub use object_name::ObjectName;
-
-// public modules
-pub mod prelude {
- pub use auto::traits::*;
- pub use repo::RepoExtManual;
-}
+++ /dev/null
-use ffi;
-use functions::{object_name_deserialize, object_name_serialize, object_to_string};
-use glib;
-use glib::translate::*;
-use glib_ffi;
-use std::fmt::Display;
-use std::fmt::Error;
-use std::fmt::Formatter;
-use std::hash::Hash;
-use std::hash::Hasher;
-use ObjectType;
-
-fn hash_object_name(v: &glib::Variant) -> u32 {
- unsafe { ffi::ostree_hash_object_name(v.to_glib_none().0 as glib_ffi::gconstpointer) }
-}
-
-#[derive(Eq, Debug)]
-pub struct ObjectName {
- variant: glib::Variant,
- checksum: String,
- object_type: ObjectType,
-}
-
-impl ObjectName {
- pub fn new_from_variant(variant: glib::Variant) -> ObjectName {
- let deserialize = object_name_deserialize(&variant);
- ObjectName {
- variant,
- checksum: deserialize.0,
- object_type: deserialize.1,
- }
- }
-
- pub fn new<S: Into<String>>(checksum: S, object_type: ObjectType) -> ObjectName {
- let checksum = checksum.into();
- let variant = object_name_serialize(checksum.as_str(), object_type).unwrap();
- ObjectName {
- variant,
- checksum,
- object_type,
- }
- }
-
- pub fn checksum(&self) -> &str {
- self.checksum.as_ref()
- }
-
- pub fn object_type(&self) -> ObjectType {
- self.object_type
- }
-
- pub fn name(&self) -> String {
- object_to_string(self.checksum(), self.object_type())
- .expect("type checks should make this safe")
- }
-}
-
-impl Display for ObjectName {
- fn fmt(&self, f: &mut Formatter) -> Result<(), Error> {
- write!(f, "{}", self.name())
- }
-}
-
-impl Hash for ObjectName {
- fn hash<H: Hasher>(&self, state: &mut H) {
- state.write_u32(hash_object_name(&self.variant));
- }
-}
-
-impl PartialEq for ObjectName {
- fn eq(&self, other: &ObjectName) -> bool {
- self.checksum == other.checksum && self.object_type == other.object_type
- }
-}
+++ /dev/null
-use auto::{Repo, RepoListRefsExtFlags};
-use ffi;
-use gio;
-use glib;
-use glib::translate::*;
-use glib::Error;
-use glib::IsA;
-use glib_ffi;
-use std::collections::{HashMap, HashSet};
-use std::path::Path;
-use std::ptr;
-use ObjectName;
-
-unsafe extern "C" fn read_variant_table(
- _key: glib_ffi::gpointer,
- value: glib_ffi::gpointer,
- hash_set: glib_ffi::gpointer,
-) {
- let value: glib::Variant = from_glib_none(value as *const glib_ffi::GVariant);
- let set: &mut HashSet<ObjectName> = &mut *(hash_set as *mut HashSet<ObjectName>);
- set.insert(ObjectName::new_from_variant(value));
-}
-
-unsafe fn from_glib_container_variant_set(ptr: *mut glib_ffi::GHashTable) -> HashSet<ObjectName> {
- let mut set = HashSet::new();
- glib_ffi::g_hash_table_foreach(
- ptr,
- Some(read_variant_table),
- &mut set as *mut HashSet<ObjectName> as *mut _,
- );
- glib_ffi::g_hash_table_unref(ptr);
- set
-}
-
-pub trait RepoExtManual {
- fn new_for_path<P: AsRef<Path>>(path: P) -> Repo;
-
- fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(
- &self,
- commit_checksum: &str,
- maxdepth: i32,
- cancellable: P,
- ) -> Result<HashSet<ObjectName>, Error>;
-
- fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
- &self,
- refspec_prefix: P,
- cancellable: Q,
- ) -> Result<HashMap<String, String>, Error>;
-
- fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
- &self,
- refspec_prefix: P,
- flags: RepoListRefsExtFlags,
- cancellable: Q,
- ) -> Result<HashMap<String, String>, Error>;
-}
-
-impl<O: IsA<Repo> + IsA<glib::Object> + Clone + 'static> RepoExtManual for O {
- fn new_for_path<P: AsRef<Path>>(path: P) -> Repo {
- Repo::new(&gio::File::new_for_path(path.as_ref()))
- }
-
- fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(
- &self,
- commit_checksum: &str,
- maxdepth: i32,
- cancellable: P,
- ) -> Result<HashSet<ObjectName>, Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let mut hashtable = ptr::null_mut();
- let _ = ffi::ostree_repo_traverse_commit(
- self.to_glib_none().0,
- commit_checksum.to_glib_none().0,
- maxdepth,
- &mut hashtable,
- cancellable.into().to_glib_none().0,
- &mut error,
- );
- if error.is_null() {
- Ok(from_glib_container_variant_set(hashtable))
- } else {
- Err(from_glib_full(error))
- }
- }
- }
-
- fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
- &self,
- refspec_prefix: P,
- cancellable: Q,
- ) -> Result<HashMap<String, String>, Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let mut hashtable = ptr::null_mut();
- let _ = ffi::ostree_repo_list_refs(
- self.to_glib_none().0,
- refspec_prefix.into().to_glib_none().0,
- &mut hashtable,
- cancellable.into().to_glib_none().0,
- &mut error,
- );
-
- if error.is_null() {
- Ok(FromGlibPtrContainer::from_glib_container(hashtable))
- } else {
- Err(from_glib_full(error))
- }
- }
- }
-
- fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
- &self,
- refspec_prefix: P,
- flags: RepoListRefsExtFlags,
- cancellable: Q,
- ) -> Result<HashMap<String, String>, Error> {
- unsafe {
- let mut error = ptr::null_mut();
- let mut hashtable = ptr::null_mut();
- let _ = ffi::ostree_repo_list_refs_ext(
- self.to_glib_none().0,
- refspec_prefix.into().to_glib_none().0,
- &mut hashtable,
- flags.to_glib(),
- cancellable.into().to_glib_none().0,
- &mut error,
- );
-
- if error.is_null() {
- Ok(FromGlibPtrContainer::from_glib_container(hashtable))
- } else {
- Err(from_glib_full(error))
- }
- }
- }
-}
+++ /dev/null
-extern crate gio;
-extern crate glib;
-extern crate libostree;
-extern crate tempfile;
-
-use glib::prelude::*;
-use libostree::prelude::*;
-use std::fs;
-use std::io;
-use std::io::Write;
-
-fn create_repo(repodir: &tempfile::TempDir) -> Result<libostree::Repo, glib::Error> {
- let repo = libostree::Repo::new_for_path(repodir.path());
- repo.create(libostree::RepoMode::Archive, None)?;
- Ok(repo)
-}
-
-fn create_test_file(treedir: &tempfile::TempDir) -> Result<(), io::Error> {
- let mut testfile = fs::File::create(treedir.path().join("test.txt"))?;
- write!(testfile, "test")?;
- Ok(())
-}
-
-fn create_mtree(
- treedir: &tempfile::TempDir,
- repo: &libostree::Repo,
-) -> Result<libostree::MutableTree, glib::Error> {
- let gfile = gio::File::new_for_path(treedir.path());
- let mtree = libostree::MutableTree::new();
- repo.write_directory_to_mtree(&gfile, &mtree, None, None)?;
- Ok(mtree)
-}
-
-fn commit_mtree(
- repo: &libostree::Repo,
- mtree: &libostree::MutableTree,
-) -> Result<String, glib::Error> {
- repo.prepare_transaction(None)?;
- let repo_file = repo.write_mtree(mtree, None)?.downcast().unwrap();
- let checksum = repo.write_commit(None, "Test Commit", None, None, &repo_file, None)?;
- repo.transaction_set_ref(None, "test", checksum.as_str());
- repo.commit_transaction(None)?;
- Ok(checksum)
-}
-
-fn open_repo(repodir: &tempfile::TempDir) -> Result<libostree::Repo, glib::Error> {
- let repo = libostree::Repo::new_for_path(repodir.path());
- repo.open(None)?;
- Ok(repo)
-}
-
-#[test]
-fn should_commit_content_to_repo_and_list_refs_again() {
- let repodir = tempfile::tempdir().unwrap();
- let treedir = tempfile::tempdir().unwrap();
-
- let repo = create_repo(&repodir).expect("failed to create repo");
- create_test_file(&treedir).expect("failed to create test file");
- let mtree = create_mtree(&treedir, &repo).expect("failed to build mtree");
- let checksum = commit_mtree(&repo, &mtree).expect("failed to commit mtree");
-
- let repo = open_repo(&repodir).expect("failed to open repo");
- let refs = repo.list_refs(None, None).expect("failed to list refs");
- assert_eq!(refs.len(), 1);
- assert_eq!(refs["test"], checksum);
-}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib;
+use glib::object::Downcast;
+use glib::object::IsA;
+use glib::signal::SignalHandlerId;
+use glib::signal::connect;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::boxed::Box as Box_;
+use std::mem;
+use std::mem::transmute;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct AsyncProgress(Object<ffi::OstreeAsyncProgress, ffi::OstreeAsyncProgressClass>);
+
+ match fn {
+ get_type => || ffi::ostree_async_progress_get_type(),
+ }
+}
+
+impl AsyncProgress {
+ pub fn new() -> AsyncProgress {
+ unsafe {
+ from_glib_full(ffi::ostree_async_progress_new())
+ }
+ }
+
+ //pub fn new_and_connect<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(changed: P, user_data: Q) -> AsyncProgress {
+ // unsafe { TODO: call ffi::ostree_async_progress_new_and_connect() }
+ //}
+}
+
+impl Default for AsyncProgress {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+pub trait AsyncProgressExt {
+ fn finish(&self);
+
+ //#[cfg(any(feature = "v2017_6", feature = "dox"))]
+ //fn get(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn get_status(&self) -> Option<String>;
+
+ fn get_uint(&self, key: &str) -> u32;
+
+ fn get_uint64(&self, key: &str) -> u64;
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn get_variant(&self, key: &str) -> Option<glib::Variant>;
+
+ //#[cfg(any(feature = "v2017_6", feature = "dox"))]
+ //fn set(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn set_status<'a, P: Into<Option<&'a str>>>(&self, status: P);
+
+ fn set_uint(&self, key: &str, value: u32);
+
+ fn set_uint64(&self, key: &str, value: u64);
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn set_variant(&self, key: &str, value: &glib::Variant);
+
+ fn connect_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
+}
+
+impl<O: IsA<AsyncProgress> + IsA<glib::object::Object>> AsyncProgressExt for O {
+ fn finish(&self) {
+ unsafe {
+ ffi::ostree_async_progress_finish(self.to_glib_none().0);
+ }
+ }
+
+ //#[cfg(any(feature = "v2017_6", feature = "dox"))]
+ //fn get(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
+ // unsafe { TODO: call ffi::ostree_async_progress_get() }
+ //}
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn get_status(&self) -> Option<String> {
+ unsafe {
+ from_glib_full(ffi::ostree_async_progress_get_status(self.to_glib_none().0))
+ }
+ }
+
+ fn get_uint(&self, key: &str) -> u32 {
+ unsafe {
+ ffi::ostree_async_progress_get_uint(self.to_glib_none().0, key.to_glib_none().0)
+ }
+ }
+
+ fn get_uint64(&self, key: &str) -> u64 {
+ unsafe {
+ ffi::ostree_async_progress_get_uint64(self.to_glib_none().0, key.to_glib_none().0)
+ }
+ }
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn get_variant(&self, key: &str) -> Option<glib::Variant> {
+ unsafe {
+ from_glib_full(ffi::ostree_async_progress_get_variant(self.to_glib_none().0, key.to_glib_none().0))
+ }
+ }
+
+ //#[cfg(any(feature = "v2017_6", feature = "dox"))]
+ //fn set(&self, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
+ // unsafe { TODO: call ffi::ostree_async_progress_set() }
+ //}
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn set_status<'a, P: Into<Option<&'a str>>>(&self, status: P) {
+ let status = status.into();
+ let status = status.to_glib_none();
+ unsafe {
+ ffi::ostree_async_progress_set_status(self.to_glib_none().0, status.0);
+ }
+ }
+
+ fn set_uint(&self, key: &str, value: u32) {
+ unsafe {
+ ffi::ostree_async_progress_set_uint(self.to_glib_none().0, key.to_glib_none().0, value);
+ }
+ }
+
+ fn set_uint64(&self, key: &str, value: u64) {
+ unsafe {
+ ffi::ostree_async_progress_set_uint64(self.to_glib_none().0, key.to_glib_none().0, value);
+ }
+ }
+
+ #[cfg(any(feature = "v2017_6", feature = "dox"))]
+ fn set_variant(&self, key: &str, value: &glib::Variant) {
+ unsafe {
+ ffi::ostree_async_progress_set_variant(self.to_glib_none().0, key.to_glib_none().0, value.to_glib_none().0);
+ }
+ }
+
+ fn connect_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
+ unsafe {
+ let f: Box_<Box_<Fn(&Self) + 'static>> = Box_::new(Box_::new(f));
+ connect(self.to_glib_none().0, "changed",
+ transmute(changed_trampoline::<Self> as usize), Box_::into_raw(f) as *mut _)
+ }
+ }
+}
+
+unsafe extern "C" fn changed_trampoline<P>(this: *mut ffi::OstreeAsyncProgress, f: glib_ffi::gpointer)
+where P: IsA<AsyncProgress> {
+ let f: &&(Fn(&P) + 'static) = transmute(f);
+ f(&AsyncProgress::from_glib_borrow(this).downcast_unchecked())
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::hash;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialOrd, Ord)]
+ pub struct CollectionRef(Boxed<ffi::OstreeCollectionRef>);
+
+ match fn {
+ copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_collection_ref_get_type(), ptr as *mut _) as *mut ffi::OstreeCollectionRef,
+ free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_collection_ref_get_type(), ptr as *mut _),
+ get_type => || ffi::ostree_collection_ref_get_type(),
+ }
+}
+
+impl CollectionRef {
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn new<'a, P: Into<Option<&'a str>>>(collection_id: P, ref_name: &str) -> CollectionRef {
+ let collection_id = collection_id.into();
+ let collection_id = collection_id.to_glib_none();
+ unsafe {
+ from_glib_full(ffi::ostree_collection_ref_new(collection_id.0, ref_name.to_glib_none().0))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn dup(&self) -> Option<CollectionRef> {
+ unsafe {
+ from_glib_full(ffi::ostree_collection_ref_dup(self.to_glib_none().0))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn dupv(refs: &[&CollectionRef]) -> Vec<CollectionRef> {
+ unsafe {
+ FromGlibPtrContainer::from_glib_full(ffi::ostree_collection_ref_dupv(refs.to_glib_none().0))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn equal<'a, P: Into<Option<&'a CollectionRef>>>(&self, ref2: P) -> bool {
+ unsafe {
+ from_glib(ffi::ostree_collection_ref_equal(ToGlibPtr::<*mut ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer, ToGlibPtr::<*mut ffi::OstreeCollectionRef>::to_glib_none(ref2).0 as glib_ffi::gconstpointer))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn freev(refs: &[&CollectionRef]) {
+ unsafe {
+ ffi::ostree_collection_ref_freev(refs.to_glib_full());
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn hash(&self) -> u32 {
+ unsafe {
+ ffi::ostree_collection_ref_hash(ToGlibPtr::<*mut ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer)
+ }
+ }
+}
+
+impl PartialEq for CollectionRef {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ self.equal(other)
+ }
+}
+
+impl Eq for CollectionRef {}
+
+impl hash::Hash for CollectionRef {
+ #[inline]
+ fn hash<H>(&self, state: &mut H) where H: hash::Hasher {
+ hash::Hash::hash(&self.hash(), state)
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use std::ffi::CStr;
+
+lazy_static! {
+ pub static ref COMMIT_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_GVARIANT_STRING).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+lazy_static! {
+ pub static ref COMMIT_META_KEY_COLLECTION_BINDING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_COLLECTION_BINDING).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2017_7", feature = "dox"))]
+lazy_static! {
+ pub static ref COMMIT_META_KEY_ENDOFLIFE: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_ENDOFLIFE).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2017_7", feature = "dox"))]
+lazy_static! {
+ pub static ref COMMIT_META_KEY_ENDOFLIFE_REBASE: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_ENDOFLIFE_REBASE).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2017_9", feature = "dox"))]
+lazy_static! {
+ pub static ref COMMIT_META_KEY_REF_BINDING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_REF_BINDING).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2017_13", feature = "dox"))]
+lazy_static! {
+ pub static ref COMMIT_META_KEY_SOURCE_TITLE: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_SOURCE_TITLE).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2014_9", feature = "dox"))]
+lazy_static! {
+ pub static ref COMMIT_META_KEY_VERSION: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_COMMIT_META_KEY_VERSION).to_str().unwrap()};
+}
+lazy_static! {
+ pub static ref DIRMETA_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_DIRMETA_GVARIANT_STRING).to_str().unwrap()};
+}
+lazy_static! {
+ pub static ref FILEMETA_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_FILEMETA_GVARIANT_STRING).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2018_3", feature = "dox"))]
+lazy_static! {
+ pub static ref ORIGIN_TRANSIENT_GROUP: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_ORIGIN_TRANSIENT_GROUP).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+lazy_static! {
+ pub static ref REPO_METADATA_REF: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_REPO_METADATA_REF).to_str().unwrap()};
+}
+lazy_static! {
+ pub static ref SUMMARY_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_SUMMARY_GVARIANT_STRING).to_str().unwrap()};
+}
+lazy_static! {
+ pub static ref SUMMARY_SIG_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_SUMMARY_SIG_GVARIANT_STRING).to_str().unwrap()};
+}
+lazy_static! {
+ pub static ref TREE_GVARIANT_STRING: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_TREE_GVARIANT_STRING).to_str().unwrap()};
+}
+#[cfg(any(feature = "v2017_4", feature = "dox"))]
+lazy_static! {
+ pub static ref VERSION_S: &'static str = unsafe{CStr::from_ptr(ffi::OSTREE_VERSION_S).to_str().unwrap()};
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib::translate::*;
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum GpgSignatureFormatFlags {
+ GpgSignatureFormatDefault,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for GpgSignatureFormatFlags {
+ type GlibType = ffi::OstreeGpgSignatureFormatFlags;
+
+ fn to_glib(&self) -> ffi::OstreeGpgSignatureFormatFlags {
+ match *self {
+ GpgSignatureFormatFlags::GpgSignatureFormatDefault => ffi::OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT,
+ GpgSignatureFormatFlags::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeGpgSignatureFormatFlags> for GpgSignatureFormatFlags {
+ fn from_glib(value: ffi::OstreeGpgSignatureFormatFlags) -> Self {
+ match value {
+ 0 => GpgSignatureFormatFlags::GpgSignatureFormatDefault,
+ value => GpgSignatureFormatFlags::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum ObjectType {
+ File,
+ DirTree,
+ DirMeta,
+ Commit,
+ TombstoneCommit,
+ CommitMeta,
+ PayloadLink,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for ObjectType {
+ type GlibType = ffi::OstreeObjectType;
+
+ fn to_glib(&self) -> ffi::OstreeObjectType {
+ match *self {
+ ObjectType::File => ffi::OSTREE_OBJECT_TYPE_FILE,
+ ObjectType::DirTree => ffi::OSTREE_OBJECT_TYPE_DIR_TREE,
+ ObjectType::DirMeta => ffi::OSTREE_OBJECT_TYPE_DIR_META,
+ ObjectType::Commit => ffi::OSTREE_OBJECT_TYPE_COMMIT,
+ ObjectType::TombstoneCommit => ffi::OSTREE_OBJECT_TYPE_TOMBSTONE_COMMIT,
+ ObjectType::CommitMeta => ffi::OSTREE_OBJECT_TYPE_COMMIT_META,
+ ObjectType::PayloadLink => ffi::OSTREE_OBJECT_TYPE_PAYLOAD_LINK,
+ ObjectType::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeObjectType> for ObjectType {
+ fn from_glib(value: ffi::OstreeObjectType) -> Self {
+ match value {
+ 1 => ObjectType::File,
+ 2 => ObjectType::DirTree,
+ 3 => ObjectType::DirMeta,
+ 4 => ObjectType::Commit,
+ 5 => ObjectType::TombstoneCommit,
+ 6 => ObjectType::CommitMeta,
+ 7 => ObjectType::PayloadLink,
+ value => ObjectType::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum RepoCheckoutMode {
+ None,
+ User,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoCheckoutMode {
+ type GlibType = ffi::OstreeRepoCheckoutMode;
+
+ fn to_glib(&self) -> ffi::OstreeRepoCheckoutMode {
+ match *self {
+ RepoCheckoutMode::None => ffi::OSTREE_REPO_CHECKOUT_MODE_NONE,
+ RepoCheckoutMode::User => ffi::OSTREE_REPO_CHECKOUT_MODE_USER,
+ RepoCheckoutMode::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoCheckoutMode> for RepoCheckoutMode {
+ fn from_glib(value: ffi::OstreeRepoCheckoutMode) -> Self {
+ match value {
+ 0 => RepoCheckoutMode::None,
+ 1 => RepoCheckoutMode::User,
+ value => RepoCheckoutMode::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum RepoCheckoutOverwriteMode {
+ None,
+ UnionFiles,
+ AddFiles,
+ UnionIdentical,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoCheckoutOverwriteMode {
+ type GlibType = ffi::OstreeRepoCheckoutOverwriteMode;
+
+ fn to_glib(&self) -> ffi::OstreeRepoCheckoutOverwriteMode {
+ match *self {
+ RepoCheckoutOverwriteMode::None => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_NONE,
+ RepoCheckoutOverwriteMode::UnionFiles => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_FILES,
+ RepoCheckoutOverwriteMode::AddFiles => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_ADD_FILES,
+ RepoCheckoutOverwriteMode::UnionIdentical => ffi::OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_IDENTICAL,
+ RepoCheckoutOverwriteMode::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoCheckoutOverwriteMode> for RepoCheckoutOverwriteMode {
+ fn from_glib(value: ffi::OstreeRepoCheckoutOverwriteMode) -> Self {
+ match value {
+ 0 => RepoCheckoutOverwriteMode::None,
+ 1 => RepoCheckoutOverwriteMode::UnionFiles,
+ 2 => RepoCheckoutOverwriteMode::AddFiles,
+ 3 => RepoCheckoutOverwriteMode::UnionIdentical,
+ value => RepoCheckoutOverwriteMode::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum RepoMode {
+ Bare,
+ Archive,
+ BareUser,
+ BareUserOnly,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoMode {
+ type GlibType = ffi::OstreeRepoMode;
+
+ fn to_glib(&self) -> ffi::OstreeRepoMode {
+ match *self {
+ RepoMode::Bare => ffi::OSTREE_REPO_MODE_BARE,
+ RepoMode::Archive => ffi::OSTREE_REPO_MODE_ARCHIVE,
+ RepoMode::BareUser => ffi::OSTREE_REPO_MODE_BARE_USER,
+ RepoMode::BareUserOnly => ffi::OSTREE_REPO_MODE_BARE_USER_ONLY,
+ RepoMode::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoMode> for RepoMode {
+ fn from_glib(value: ffi::OstreeRepoMode) -> Self {
+ match value {
+ 0 => RepoMode::Bare,
+ 1 => RepoMode::Archive,
+ 2 => RepoMode::BareUser,
+ 3 => RepoMode::BareUserOnly,
+ value => RepoMode::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum RepoPruneFlags {
+ None,
+ NoPrune,
+ RefsOnly,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoPruneFlags {
+ type GlibType = ffi::OstreeRepoPruneFlags;
+
+ fn to_glib(&self) -> ffi::OstreeRepoPruneFlags {
+ match *self {
+ RepoPruneFlags::None => ffi::OSTREE_REPO_PRUNE_FLAGS_NONE,
+ RepoPruneFlags::NoPrune => ffi::OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE,
+ RepoPruneFlags::RefsOnly => ffi::OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY,
+ RepoPruneFlags::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoPruneFlags> for RepoPruneFlags {
+ fn from_glib(value: ffi::OstreeRepoPruneFlags) -> Self {
+ match value {
+ 0 => RepoPruneFlags::None,
+ 1 => RepoPruneFlags::NoPrune,
+ 2 => RepoPruneFlags::RefsOnly,
+ value => RepoPruneFlags::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum RepoRemoteChange {
+ Add,
+ AddIfNotExists,
+ Delete,
+ DeleteIfExists,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoRemoteChange {
+ type GlibType = ffi::OstreeRepoRemoteChange;
+
+ fn to_glib(&self) -> ffi::OstreeRepoRemoteChange {
+ match *self {
+ RepoRemoteChange::Add => ffi::OSTREE_REPO_REMOTE_CHANGE_ADD,
+ RepoRemoteChange::AddIfNotExists => ffi::OSTREE_REPO_REMOTE_CHANGE_ADD_IF_NOT_EXISTS,
+ RepoRemoteChange::Delete => ffi::OSTREE_REPO_REMOTE_CHANGE_DELETE,
+ RepoRemoteChange::DeleteIfExists => ffi::OSTREE_REPO_REMOTE_CHANGE_DELETE_IF_EXISTS,
+ RepoRemoteChange::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoRemoteChange> for RepoRemoteChange {
+ fn from_glib(value: ffi::OstreeRepoRemoteChange) -> Self {
+ match value {
+ 0 => RepoRemoteChange::Add,
+ 1 => RepoRemoteChange::AddIfNotExists,
+ 2 => RepoRemoteChange::Delete,
+ 3 => RepoRemoteChange::DeleteIfExists,
+ value => RepoRemoteChange::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum RepoResolveRevExtFlags {
+ RepoResolveRevExtNone,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoResolveRevExtFlags {
+ type GlibType = ffi::OstreeRepoResolveRevExtFlags;
+
+ fn to_glib(&self) -> ffi::OstreeRepoResolveRevExtFlags {
+ match *self {
+ RepoResolveRevExtFlags::RepoResolveRevExtNone => ffi::OSTREE_REPO_RESOLVE_REV_EXT_NONE,
+ RepoResolveRevExtFlags::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoResolveRevExtFlags> for RepoResolveRevExtFlags {
+ fn from_glib(value: ffi::OstreeRepoResolveRevExtFlags) -> Self {
+ match value {
+ 0 => RepoResolveRevExtFlags::RepoResolveRevExtNone,
+ value => RepoResolveRevExtFlags::__Unknown(value),
+ }
+ }
+}
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+pub enum StaticDeltaGenerateOpt {
+ Lowlatency,
+ Major,
+ #[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl ToGlib for StaticDeltaGenerateOpt {
+ type GlibType = ffi::OstreeStaticDeltaGenerateOpt;
+
+ fn to_glib(&self) -> ffi::OstreeStaticDeltaGenerateOpt {
+ match *self {
+ StaticDeltaGenerateOpt::Lowlatency => ffi::OSTREE_STATIC_DELTA_GENERATE_OPT_LOWLATENCY,
+ StaticDeltaGenerateOpt::Major => ffi::OSTREE_STATIC_DELTA_GENERATE_OPT_MAJOR,
+ StaticDeltaGenerateOpt::__Unknown(value) => value
+ }
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeStaticDeltaGenerateOpt> for StaticDeltaGenerateOpt {
+ fn from_glib(value: ffi::OstreeStaticDeltaGenerateOpt) -> Self {
+ match value {
+ 0 => StaticDeltaGenerateOpt::Lowlatency,
+ 1 => StaticDeltaGenerateOpt::Major,
+ value => StaticDeltaGenerateOpt::__Unknown(value),
+ }
+ }
+}
+
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib::translate::*;
+
+#[cfg(any(feature = "v2015_7", feature = "dox"))]
+bitflags! {
+ pub struct RepoCommitState: u32 {
+ const NORMAL = 0;
+ const PARTIAL = 1;
+ }
+}
+
+#[cfg(any(feature = "v2015_7", feature = "dox"))]
+#[doc(hidden)]
+impl ToGlib for RepoCommitState {
+ type GlibType = ffi::OstreeRepoCommitState;
+
+ fn to_glib(&self) -> ffi::OstreeRepoCommitState {
+ self.bits()
+ }
+}
+
+#[cfg(any(feature = "v2015_7", feature = "dox"))]
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoCommitState> for RepoCommitState {
+ fn from_glib(value: ffi::OstreeRepoCommitState) -> RepoCommitState {
+ RepoCommitState::from_bits_truncate(value)
+ }
+}
+
+bitflags! {
+ pub struct RepoListRefsExtFlags: u32 {
+ const NONE = 0;
+ const ALIASES = 1;
+ const EXCLUDE_REMOTES = 2;
+ }
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoListRefsExtFlags {
+ type GlibType = ffi::OstreeRepoListRefsExtFlags;
+
+ fn to_glib(&self) -> ffi::OstreeRepoListRefsExtFlags {
+ self.bits()
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoListRefsExtFlags> for RepoListRefsExtFlags {
+ fn from_glib(value: ffi::OstreeRepoListRefsExtFlags) -> RepoListRefsExtFlags {
+ RepoListRefsExtFlags::from_bits_truncate(value)
+ }
+}
+
+bitflags! {
+ pub struct RepoPullFlags: u32 {
+ const NONE = 0;
+ const MIRROR = 1;
+ const COMMIT_ONLY = 2;
+ const UNTRUSTED = 4;
+ const BAREUSERONLY_FILES = 8;
+ const TRUSTED_HTTP = 16;
+ }
+}
+
+#[doc(hidden)]
+impl ToGlib for RepoPullFlags {
+ type GlibType = ffi::OstreeRepoPullFlags;
+
+ fn to_glib(&self) -> ffi::OstreeRepoPullFlags {
+ self.bits()
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeRepoPullFlags> for RepoPullFlags {
+ fn from_glib(value: ffi::OstreeRepoPullFlags) -> RepoPullFlags {
+ RepoPullFlags::from_bits_truncate(value)
+ }
+}
+
+bitflags! {
+ pub struct SePolicyRestoreconFlags: u32 {
+ const NONE = 0;
+ const ALLOW_NOLABEL = 1;
+ const KEEP_EXISTING = 2;
+ }
+}
+
+#[doc(hidden)]
+impl ToGlib for SePolicyRestoreconFlags {
+ type GlibType = ffi::OstreeSePolicyRestoreconFlags;
+
+ fn to_glib(&self) -> ffi::OstreeSePolicyRestoreconFlags {
+ self.bits()
+ }
+}
+
+#[doc(hidden)]
+impl FromGlib<ffi::OstreeSePolicyRestoreconFlags> for SePolicyRestoreconFlags {
+ fn from_glib(value: ffi::OstreeSePolicyRestoreconFlags) -> SePolicyRestoreconFlags {
+ SePolicyRestoreconFlags::from_bits_truncate(value)
+ }
+}
+
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use Error;
+use ObjectType;
+use ffi;
+use gio;
+use glib;
+use glib::object::IsA;
+use glib::translate::*;
+use std::mem;
+use std::ptr;
+
+
+#[cfg(any(feature = "v2017_15", feature = "dox"))]
+pub fn break_hardlink<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, skip_xattrs: bool, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_break_hardlink(dfd, path.to_glib_none().0, skip_xattrs.to_glib(), cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn check_version(required_year: u32, required_release: u32) -> bool {
+ unsafe {
+ from_glib(ffi::ostree_check_version(required_year, required_release))
+ }
+}
+
+//pub fn checksum_b64_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32) -> Option<String> {
+// unsafe { TODO: call ffi::ostree_checksum_b64_from_bytes() }
+//}
+
+//pub fn checksum_b64_inplace_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, buf: &str) {
+// unsafe { TODO: call ffi::ostree_checksum_b64_inplace_from_bytes() }
+//}
+
+//pub fn checksum_b64_inplace_to_bytes(checksum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 28 }; 32, buf: u8) {
+// unsafe { TODO: call ffi::ostree_checksum_b64_inplace_to_bytes() }
+//}
+
+//pub fn checksum_b64_to_bytes(checksum: &str) -> /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32 {
+// unsafe { TODO: call ffi::ostree_checksum_b64_to_bytes() }
+//}
+
+//pub fn checksum_bytes_peek(bytes: &glib::Variant) -> /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32 {
+// unsafe { TODO: call ffi::ostree_checksum_bytes_peek() }
+//}
+
+//pub fn checksum_bytes_peek_validate(bytes: &glib::Variant) -> Result</*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, Error> {
+// unsafe { TODO: call ffi::ostree_checksum_bytes_peek_validate() }
+//}
+
+//pub fn checksum_file<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(f: &P, objtype: ObjectType, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: Q) -> Result<(), Error> {
+// unsafe { TODO: call ffi::ostree_checksum_file() }
+//}
+
+//pub fn checksum_file_async<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>, R: /*Ignored*/gio::AsyncReadyCallback>(f: &P, objtype: ObjectType, io_priority: i32, cancellable: Q, callback: R) {
+// unsafe { TODO: call ffi::ostree_checksum_file_async() }
+//}
+
+//#[cfg(any(feature = "v2017_13", feature = "dox"))]
+//pub fn checksum_file_at<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, stbuf: P, objtype: ObjectType, flags: /*Ignored*/ChecksumFlags, out_checksum: &str, cancellable: Q) -> Result<(), Error> {
+// unsafe { TODO: call ffi::ostree_checksum_file_at() }
+//}
+
+//pub fn checksum_file_from_input<'a, 'b, 'c, P: Into<Option<&'a glib::Variant>>, Q: IsA<gio::InputStream> + 'b, R: Into<Option<&'b Q>>, S: Into<Option<&'c gio::Cancellable>>>(file_info: &gio::FileInfo, xattrs: P, in_: R, objtype: ObjectType, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: S) -> Result<(), Error> {
+// unsafe { TODO: call ffi::ostree_checksum_file_from_input() }
+//}
+
+//pub fn checksum_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32) -> Option<String> {
+// unsafe { TODO: call ffi::ostree_checksum_from_bytes() }
+//}
+
+pub fn checksum_from_bytes_v(csum_v: &glib::Variant) -> Option<String> {
+ unsafe {
+ from_glib_full(ffi::ostree_checksum_from_bytes_v(csum_v.to_glib_none().0))
+ }
+}
+
+//pub fn checksum_inplace_from_bytes(csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, buf: &str) {
+// unsafe { TODO: call ffi::ostree_checksum_inplace_from_bytes() }
+//}
+
+//pub fn checksum_to_bytes(checksum: &str) -> /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32 {
+// unsafe { TODO: call ffi::ostree_checksum_to_bytes() }
+//}
+
+pub fn checksum_to_bytes_v(checksum: &str) -> Option<glib::Variant> {
+ unsafe {
+ from_glib_full(ffi::ostree_checksum_to_bytes_v(checksum.to_glib_none().0))
+ }
+}
+
+//pub fn cmd__private__() -> /*Ignored*/Option<CmdPrivateVTable> {
+// unsafe { TODO: call ffi::ostree_cmd__private__() }
+//}
+
+pub fn commit_get_content_checksum(commit_variant: &glib::Variant) -> Option<String> {
+ unsafe {
+ from_glib_full(ffi::ostree_commit_get_content_checksum(commit_variant.to_glib_none().0))
+ }
+}
+
+pub fn commit_get_parent(commit_variant: &glib::Variant) -> Option<String> {
+ unsafe {
+ from_glib_full(ffi::ostree_commit_get_parent(commit_variant.to_glib_none().0))
+ }
+}
+
+pub fn commit_get_timestamp(commit_variant: &glib::Variant) -> u64 {
+ unsafe {
+ ffi::ostree_commit_get_timestamp(commit_variant.to_glib_none().0)
+ }
+}
+
+pub fn content_file_parse<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(compressed: bool, content_path: &P, trusted: bool, cancellable: Q) -> Result<(gio::InputStream, gio::FileInfo, glib::Variant), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut out_file_info = ptr::null_mut();
+ let mut out_xattrs = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_content_file_parse(compressed.to_glib(), content_path.to_glib_none().0, trusted.to_glib(), &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn content_file_parse_at<'a, P: Into<Option<&'a gio::Cancellable>>>(compressed: bool, parent_dfd: i32, path: &str, trusted: bool, cancellable: P) -> Result<(gio::InputStream, gio::FileInfo, glib::Variant), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut out_file_info = ptr::null_mut();
+ let mut out_xattrs = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_content_file_parse_at(compressed.to_glib(), parent_dfd, path.to_glib_none().0, trusted.to_glib(), &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn content_stream_parse<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(compressed: bool, input: &P, input_length: u64, trusted: bool, cancellable: Q) -> Result<(gio::InputStream, gio::FileInfo, glib::Variant), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut out_file_info = ptr::null_mut();
+ let mut out_xattrs = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_content_stream_parse(compressed.to_glib(), input.to_glib_none().0, input_length, trusted.to_glib(), &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn create_directory_metadata<'a, P: Into<Option<&'a glib::Variant>>>(dir_info: &gio::FileInfo, xattrs: P) -> Option<glib::Variant> {
+ let xattrs = xattrs.into();
+ let xattrs = xattrs.to_glib_none();
+ unsafe {
+ from_glib_full(ffi::ostree_create_directory_metadata(dir_info.to_glib_none().0, xattrs.0))
+ }
+}
+
+//pub fn diff_dirs<'a, P: IsA<gio::File>, Q: IsA<gio::File>, R: Into<Option<&'a gio::Cancellable>>>(flags: /*Ignored*/DiffFlags, a: &P, b: &Q, modified: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 1, id: 24 }, removed: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, added: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, cancellable: R) -> Result<(), Error> {
+// unsafe { TODO: call ffi::ostree_diff_dirs() }
+//}
+
+//pub fn diff_dirs_with_options<'a, 'b, P: IsA<gio::File>, Q: IsA<gio::File>, R: Into<Option<&'a /*Ignored*/DiffDirsOptions>>, S: Into<Option<&'b gio::Cancellable>>>(flags: /*Ignored*/DiffFlags, a: &P, b: &Q, modified: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 1, id: 24 }, removed: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, added: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, options: R, cancellable: S) -> Result<(), Error> {
+// unsafe { TODO: call ffi::ostree_diff_dirs_with_options() }
+//}
+
+//pub fn diff_print<P: IsA<gio::File>, Q: IsA<gio::File>>(a: &P, b: &Q, modified: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 1, id: 24 }, removed: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }, added: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 4, id: 15 }) {
+// unsafe { TODO: call ffi::ostree_diff_print() }
+//}
+
+//pub fn gpg_error_quark() -> /*Ignored*/glib::Quark {
+// unsafe { TODO: call ffi::ostree_gpg_error_quark() }
+//}
+
+//pub fn hash_object_name<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(a: P) -> u32 {
+// unsafe { TODO: call ffi::ostree_hash_object_name() }
+//}
+
+//pub fn metadata_variant_type(objtype: ObjectType) -> /*Ignored*/Option<glib::VariantType> {
+// unsafe { TODO: call ffi::ostree_metadata_variant_type() }
+//}
+
+pub fn object_from_string(str: &str) -> (String, ObjectType) {
+ unsafe {
+ let mut out_checksum = ptr::null_mut();
+ let mut out_objtype = mem::uninitialized();
+ ffi::ostree_object_from_string(str.to_glib_none().0, &mut out_checksum, &mut out_objtype);
+ (from_glib_full(out_checksum), from_glib(out_objtype))
+ }
+}
+
+pub fn object_name_deserialize(variant: &glib::Variant) -> (String, ObjectType) {
+ unsafe {
+ let mut out_checksum = ptr::null();
+ let mut out_objtype = mem::uninitialized();
+ ffi::ostree_object_name_deserialize(variant.to_glib_none().0, &mut out_checksum, &mut out_objtype);
+ (from_glib_none(out_checksum), from_glib(out_objtype))
+ }
+}
+
+pub fn object_name_serialize(checksum: &str, objtype: ObjectType) -> Option<glib::Variant> {
+ unsafe {
+ from_glib_none(ffi::ostree_object_name_serialize(checksum.to_glib_none().0, objtype.to_glib()))
+ }
+}
+
+pub fn object_to_string(checksum: &str, objtype: ObjectType) -> Option<String> {
+ unsafe {
+ from_glib_full(ffi::ostree_object_to_string(checksum.to_glib_none().0, objtype.to_glib()))
+ }
+}
+
+pub fn object_type_from_string(str: &str) -> ObjectType {
+ unsafe {
+ from_glib(ffi::ostree_object_type_from_string(str.to_glib_none().0))
+ }
+}
+
+pub fn object_type_to_string(objtype: ObjectType) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_object_type_to_string(objtype.to_glib()))
+ }
+}
+
+pub fn parse_refspec(refspec: &str) -> Result<(Option<String>, String), Error> {
+ unsafe {
+ let mut out_remote = ptr::null_mut();
+ let mut out_ref = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_parse_refspec(refspec.to_glib_none().0, &mut out_remote, &mut out_ref, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_remote), from_glib_full(out_ref))) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn raw_file_to_archive_z2_stream<'a, 'b, P: IsA<gio::InputStream>, Q: Into<Option<&'a glib::Variant>>, R: Into<Option<&'b gio::Cancellable>>>(input: &P, file_info: &gio::FileInfo, xattrs: Q, cancellable: R) -> Result<gio::InputStream, Error> {
+ let xattrs = xattrs.into();
+ let xattrs = xattrs.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_raw_file_to_archive_z2_stream(input.to_glib_none().0, file_info.to_glib_none().0, xattrs.0, &mut out_input, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_input)) } else { Err(from_glib_full(error)) }
+ }
+}
+
+#[cfg(any(feature = "v2017_3", feature = "dox"))]
+pub fn raw_file_to_archive_z2_stream_with_options<'a, 'b, 'c, P: IsA<gio::InputStream>, Q: Into<Option<&'a glib::Variant>>, R: Into<Option<&'b glib::Variant>>, S: Into<Option<&'c gio::Cancellable>>>(input: &P, file_info: &gio::FileInfo, xattrs: Q, options: R, cancellable: S) -> Result<gio::InputStream, Error> {
+ let xattrs = xattrs.into();
+ let xattrs = xattrs.to_glib_none();
+ let options = options.into();
+ let options = options.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_raw_file_to_archive_z2_stream_with_options(input.to_glib_none().0, file_info.to_glib_none().0, xattrs.0, options.0, &mut out_input, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_input)) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn raw_file_to_content_stream<'a, 'b, P: IsA<gio::InputStream>, Q: Into<Option<&'a glib::Variant>>, R: Into<Option<&'b gio::Cancellable>>>(input: &P, file_info: &gio::FileInfo, xattrs: Q, cancellable: R) -> Result<(gio::InputStream, u64), Error> {
+ let xattrs = xattrs.into();
+ let xattrs = xattrs.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut out_length = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_raw_file_to_content_stream(input.to_glib_none().0, file_info.to_glib_none().0, xattrs.0, &mut out_input, &mut out_length, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_input), out_length)) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_checksum_string(sha256: &str) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_checksum_string(sha256.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+pub fn validate_collection_id<'a, P: Into<Option<&'a str>>>(collection_id: P) -> Result<(), Error> {
+ let collection_id = collection_id.into();
+ let collection_id = collection_id.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_collection_id(collection_id.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+#[cfg(any(feature = "v2017_8", feature = "dox"))]
+pub fn validate_remote_name(remote_name: &str) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_remote_name(remote_name.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_rev(rev: &str) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_rev(rev.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_checksum_string(checksum: &str) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_checksum_string(checksum.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_commit(commit: &glib::Variant) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_commit(commit.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_csum_v(checksum: &glib::Variant) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_csum_v(checksum.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_dirmeta(dirmeta: &glib::Variant) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_dirmeta(dirmeta.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_dirtree(dirtree: &glib::Variant) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_dirtree(dirtree.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_file_mode(mode: u32) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_file_mode(mode, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
+
+pub fn validate_structureof_objtype(objtype: u8) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_validate_structureof_objtype(objtype, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use Error;
+use GpgSignatureFormatFlags;
+use ffi;
+use glib;
+use glib::object::IsA;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct GpgVerifyResult(Object<ffi::OstreeGpgVerifyResult>);
+
+ match fn {
+ get_type => || ffi::ostree_gpg_verify_result_get_type(),
+ }
+}
+
+impl GpgVerifyResult {
+ pub fn describe_variant<'a, P: Into<Option<&'a str>>>(variant: &glib::Variant, output_buffer: &mut glib::String, line_prefix: P, flags: GpgSignatureFormatFlags) {
+ let line_prefix = line_prefix.into();
+ let line_prefix = line_prefix.to_glib_none();
+ unsafe {
+ ffi::ostree_gpg_verify_result_describe_variant(variant.to_glib_none().0, output_buffer.to_glib_none_mut().0, line_prefix.0, flags.to_glib());
+ }
+ }
+}
+
+pub trait GpgVerifyResultExt {
+ fn count_all(&self) -> u32;
+
+ fn count_valid(&self) -> u32;
+
+ fn describe<'a, P: Into<Option<&'a str>>>(&self, signature_index: u32, output_buffer: &mut glib::String, line_prefix: P, flags: GpgSignatureFormatFlags);
+
+ //fn get(&self, signature_index: u32, attrs: /*Unimplemented*/&CArray TypeId { ns_id: 1, id: 26 }) -> Option<glib::Variant>;
+
+ fn get_all(&self, signature_index: u32) -> Option<glib::Variant>;
+
+ fn lookup(&self, key_id: &str) -> Option<u32>;
+
+ fn require_valid_signature(&self) -> Result<(), Error>;
+}
+
+impl<O: IsA<GpgVerifyResult>> GpgVerifyResultExt for O {
+ fn count_all(&self) -> u32 {
+ unsafe {
+ ffi::ostree_gpg_verify_result_count_all(self.to_glib_none().0)
+ }
+ }
+
+ fn count_valid(&self) -> u32 {
+ unsafe {
+ ffi::ostree_gpg_verify_result_count_valid(self.to_glib_none().0)
+ }
+ }
+
+ fn describe<'a, P: Into<Option<&'a str>>>(&self, signature_index: u32, output_buffer: &mut glib::String, line_prefix: P, flags: GpgSignatureFormatFlags) {
+ let line_prefix = line_prefix.into();
+ let line_prefix = line_prefix.to_glib_none();
+ unsafe {
+ ffi::ostree_gpg_verify_result_describe(self.to_glib_none().0, signature_index, output_buffer.to_glib_none_mut().0, line_prefix.0, flags.to_glib());
+ }
+ }
+
+ //fn get(&self, signature_index: u32, attrs: /*Unimplemented*/&CArray TypeId { ns_id: 1, id: 26 }) -> Option<glib::Variant> {
+ // unsafe { TODO: call ffi::ostree_gpg_verify_result_get() }
+ //}
+
+ fn get_all(&self, signature_index: u32) -> Option<glib::Variant> {
+ unsafe {
+ from_glib_full(ffi::ostree_gpg_verify_result_get_all(self.to_glib_none().0, signature_index))
+ }
+ }
+
+ fn lookup(&self, key_id: &str) -> Option<u32> {
+ unsafe {
+ let mut out_signature_index = mem::uninitialized();
+ let ret = from_glib(ffi::ostree_gpg_verify_result_lookup(self.to_glib_none().0, key_id.to_glib_none().0, &mut out_signature_index));
+ if ret { Some(out_signature_index) } else { None }
+ }
+ }
+
+ fn require_valid_signature(&self) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_gpg_verify_result_require_valid_signature(self.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+mod async_progress;
+pub use self::async_progress::AsyncProgress;
+pub use self::async_progress::AsyncProgressExt;
+
+mod gpg_verify_result;
+pub use self::gpg_verify_result::GpgVerifyResult;
+pub use self::gpg_verify_result::GpgVerifyResultExt;
+
+mod mutable_tree;
+pub use self::mutable_tree::MutableTree;
+pub use self::mutable_tree::MutableTreeExt;
+
+mod repo;
+pub use self::repo::Repo;
+pub use self::repo::RepoExt;
+
+mod repo_file;
+pub use self::repo_file::RepoFile;
+pub use self::repo_file::RepoFileExt;
+
+mod se_policy;
+pub use self::se_policy::SePolicy;
+pub use self::se_policy::SePolicyExt;
+
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+mod collection_ref;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+pub use self::collection_ref::CollectionRef;
+
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+mod remote;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+pub use self::remote::Remote;
+
+mod repo_commit_modifier;
+pub use self::repo_commit_modifier::RepoCommitModifier;
+
+mod repo_dev_ino_cache;
+pub use self::repo_dev_ino_cache::RepoDevInoCache;
+
+mod repo_transaction_stats;
+pub use self::repo_transaction_stats::RepoTransactionStats;
+
+mod enums;
+pub use self::enums::GpgSignatureFormatFlags;
+pub use self::enums::ObjectType;
+pub use self::enums::RepoCheckoutMode;
+pub use self::enums::RepoCheckoutOverwriteMode;
+pub use self::enums::RepoMode;
+pub use self::enums::RepoPruneFlags;
+pub use self::enums::RepoRemoteChange;
+pub use self::enums::RepoResolveRevExtFlags;
+pub use self::enums::StaticDeltaGenerateOpt;
+
+mod flags;
+#[cfg(any(feature = "v2015_7", feature = "dox"))]
+pub use self::flags::RepoCommitState;
+pub use self::flags::RepoListRefsExtFlags;
+pub use self::flags::RepoPullFlags;
+pub use self::flags::SePolicyRestoreconFlags;
+
+pub mod functions;
+
+mod constants;
+pub use self::constants::COMMIT_GVARIANT_STRING;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+pub use self::constants::COMMIT_META_KEY_COLLECTION_BINDING;
+#[cfg(any(feature = "v2017_7", feature = "dox"))]
+pub use self::constants::COMMIT_META_KEY_ENDOFLIFE;
+#[cfg(any(feature = "v2017_7", feature = "dox"))]
+pub use self::constants::COMMIT_META_KEY_ENDOFLIFE_REBASE;
+#[cfg(any(feature = "v2017_9", feature = "dox"))]
+pub use self::constants::COMMIT_META_KEY_REF_BINDING;
+#[cfg(any(feature = "v2017_13", feature = "dox"))]
+pub use self::constants::COMMIT_META_KEY_SOURCE_TITLE;
+#[cfg(any(feature = "v2014_9", feature = "dox"))]
+pub use self::constants::COMMIT_META_KEY_VERSION;
+pub use self::constants::DIRMETA_GVARIANT_STRING;
+pub use self::constants::FILEMETA_GVARIANT_STRING;
+#[cfg(any(feature = "v2018_3", feature = "dox"))]
+pub use self::constants::ORIGIN_TRANSIENT_GROUP;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+pub use self::constants::REPO_METADATA_REF;
+pub use self::constants::SUMMARY_GVARIANT_STRING;
+pub use self::constants::SUMMARY_SIG_GVARIANT_STRING;
+pub use self::constants::TREE_GVARIANT_STRING;
+#[cfg(any(feature = "v2017_4", feature = "dox"))]
+pub use self::constants::VERSION_S;
+
+#[doc(hidden)]
+pub mod traits {
+ pub use super::AsyncProgressExt;
+ pub use super::GpgVerifyResultExt;
+ pub use super::MutableTreeExt;
+ pub use super::RepoExt;
+ pub use super::RepoFileExt;
+ pub use super::SePolicyExt;
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use Error;
+use Repo;
+use ffi;
+use glib::object::IsA;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct MutableTree(Object<ffi::OstreeMutableTree, ffi::OstreeMutableTreeClass>);
+
+ match fn {
+ get_type => || ffi::ostree_mutable_tree_get_type(),
+ }
+}
+
+impl MutableTree {
+ pub fn new() -> MutableTree {
+ unsafe {
+ from_glib_full(ffi::ostree_mutable_tree_new())
+ }
+ }
+
+ pub fn new_from_checksum(repo: &Repo, contents_checksum: &str, metadata_checksum: &str) -> MutableTree {
+ unsafe {
+ from_glib_full(ffi::ostree_mutable_tree_new_from_checksum(repo.to_glib_none().0, contents_checksum.to_glib_none().0, metadata_checksum.to_glib_none().0))
+ }
+ }
+}
+
+impl Default for MutableTree {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+pub trait MutableTreeExt {
+ #[cfg(any(feature = "v2018_7", feature = "dox"))]
+ fn check_error(&self) -> Result<(), Error>;
+
+ fn ensure_dir(&self, name: &str) -> Result<MutableTree, Error>;
+
+ //fn ensure_parent_dirs(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, metadata_checksum: &str) -> Result<MutableTree, Error>;
+
+ fn fill_empty_from_dirtree(&self, repo: &Repo, contents_checksum: &str, metadata_checksum: &str) -> bool;
+
+ fn get_contents_checksum(&self) -> Option<String>;
+
+ //fn get_files(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 };
+
+ fn get_metadata_checksum(&self) -> Option<String>;
+
+ //fn get_subdirs(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 1, id: 37 };
+
+ fn replace_file(&self, name: &str, checksum: &str) -> Result<(), Error>;
+
+ fn set_contents_checksum(&self, checksum: &str);
+
+ fn set_metadata_checksum(&self, checksum: &str);
+
+ //fn walk(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, start: u32) -> Result<MutableTree, Error>;
+}
+
+impl<O: IsA<MutableTree>> MutableTreeExt for O {
+ #[cfg(any(feature = "v2018_7", feature = "dox"))]
+ fn check_error(&self) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_mutable_tree_check_error(self.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn ensure_dir(&self, name: &str) -> Result<MutableTree, Error> {
+ unsafe {
+ let mut out_subdir = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_mutable_tree_ensure_dir(self.to_glib_none().0, name.to_glib_none().0, &mut out_subdir, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_subdir)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //fn ensure_parent_dirs(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, metadata_checksum: &str) -> Result<MutableTree, Error> {
+ // unsafe { TODO: call ffi::ostree_mutable_tree_ensure_parent_dirs() }
+ //}
+
+ fn fill_empty_from_dirtree(&self, repo: &Repo, contents_checksum: &str, metadata_checksum: &str) -> bool {
+ unsafe {
+ from_glib(ffi::ostree_mutable_tree_fill_empty_from_dirtree(self.to_glib_none().0, repo.to_glib_none().0, contents_checksum.to_glib_none().0, metadata_checksum.to_glib_none().0))
+ }
+ }
+
+ fn get_contents_checksum(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_mutable_tree_get_contents_checksum(self.to_glib_none().0))
+ }
+ }
+
+ //fn get_files(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 } {
+ // unsafe { TODO: call ffi::ostree_mutable_tree_get_files() }
+ //}
+
+ fn get_metadata_checksum(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_mutable_tree_get_metadata_checksum(self.to_glib_none().0))
+ }
+ }
+
+ //fn get_subdirs(&self) -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 1, id: 37 } {
+ // unsafe { TODO: call ffi::ostree_mutable_tree_get_subdirs() }
+ //}
+
+ fn replace_file(&self, name: &str, checksum: &str) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_mutable_tree_replace_file(self.to_glib_none().0, name.to_glib_none().0, checksum.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn set_contents_checksum(&self, checksum: &str) {
+ unsafe {
+ ffi::ostree_mutable_tree_set_contents_checksum(self.to_glib_none().0, checksum.to_glib_none().0);
+ }
+ }
+
+ fn set_metadata_checksum(&self, checksum: &str) {
+ unsafe {
+ ffi::ostree_mutable_tree_set_metadata_checksum(self.to_glib_none().0, checksum.to_glib_none().0);
+ }
+ }
+
+ //fn walk(&self, split_path: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, start: u32) -> Result<MutableTree, Error> {
+ // unsafe { TODO: call ffi::ostree_mutable_tree_walk() }
+ //}
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
+ pub struct Remote(Shared<ffi::OstreeRemote>);
+
+ match fn {
+ ref => |ptr| ffi::ostree_remote_ref(ptr),
+ unref => |ptr| ffi::ostree_remote_unref(ptr),
+ get_type => || ffi::ostree_remote_get_type(),
+ }
+}
+
+impl Remote {
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn get_name(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_remote_get_name(self.to_glib_none().0))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ pub fn get_url(&self) -> Option<String> {
+ unsafe {
+ from_glib_full(ffi::ostree_remote_get_url(self.to_glib_none().0))
+ }
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use AsyncProgress;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+use CollectionRef;
+use Error;
+use GpgVerifyResult;
+use MutableTree;
+use ObjectType;
+#[cfg(any(feature = "v2018_6", feature = "dox"))]
+use Remote;
+use RepoCheckoutMode;
+use RepoCheckoutOverwriteMode;
+use RepoCommitModifier;
+#[cfg(any(feature = "v2015_7", feature = "dox"))]
+use RepoCommitState;
+use RepoFile;
+use RepoMode;
+use RepoPruneFlags;
+use RepoPullFlags;
+use RepoRemoteChange;
+use RepoResolveRevExtFlags;
+use RepoTransactionStats;
+use StaticDeltaGenerateOpt;
+use ffi;
+use gio;
+use glib;
+use glib::StaticType;
+use glib::Value;
+use glib::object::Downcast;
+use glib::object::IsA;
+use glib::signal::SignalHandlerId;
+use glib::signal::connect;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use libc;
+use std::boxed::Box as Box_;
+use std::mem;
+use std::mem::transmute;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct Repo(Object<ffi::OstreeRepo>);
+
+ match fn {
+ get_type => || ffi::ostree_repo_get_type(),
+ }
+}
+
+impl Repo {
+ pub fn new<P: IsA<gio::File>>(path: &P) -> Repo {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_new(path.to_glib_none().0))
+ }
+ }
+
+ pub fn new_default() -> Repo {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_new_default())
+ }
+ }
+
+ pub fn new_for_sysroot_path<P: IsA<gio::File>, Q: IsA<gio::File>>(repo_path: &P, sysroot_path: &Q) -> Repo {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_new_for_sysroot_path(repo_path.to_glib_none().0, sysroot_path.to_glib_none().0))
+ }
+ }
+
+ pub fn create_at<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, mode: RepoMode, options: &glib::Variant, cancellable: P) -> Result<Repo, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_create_at(dfd, path.to_glib_none().0, mode.to_glib(), options.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ pub fn open_at<'a, P: Into<Option<&'a gio::Cancellable>>>(dfd: i32, path: &str, cancellable: P) -> Result<Repo, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_open_at(dfd, path.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //pub fn pull_default_console_progress_changed<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(progress: &AsyncProgress, user_data: P) {
+ // unsafe { TODO: call ffi::ostree_repo_pull_default_console_progress_changed() }
+ //}
+
+ //#[cfg(any(feature = "v2018_5", feature = "dox"))]
+ //pub fn traverse_new_parents() -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 } {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_new_parents() }
+ //}
+
+ //pub fn traverse_new_reachable() -> /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 } {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_new_reachable() }
+ //}
+
+ //#[cfg(any(feature = "v2018_5", feature = "dox"))]
+ //pub fn traverse_parents_get_commits(parents: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, object: &glib::Variant) -> Vec<String> {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_parents_get_commits() }
+ //}
+}
+
+pub trait RepoExt {
+ fn abort_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
+
+ fn add_gpg_signature_summary<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, key_id: &[&str], homedir: P, cancellable: Q) -> Result<(), Error>;
+
+ fn append_gpg_signature<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, signature_bytes: &glib::Bytes, cancellable: P) -> Result<(), Error>;
+
+ //fn checkout_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutAtOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error>;
+
+ fn checkout_gc<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
+
+ fn checkout_tree<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoCheckoutMode, overwrite_mode: RepoCheckoutOverwriteMode, destination: &P, source: &RepoFile, source_info: &gio::FileInfo, cancellable: Q) -> Result<(), Error>;
+
+ //fn checkout_tree_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error>;
+
+ fn commit_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<RepoTransactionStats, Error>;
+
+ fn copy_config(&self) -> Option<glib::KeyFile>;
+
+ fn create<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoMode, cancellable: P) -> Result<(), Error>;
+
+ fn delete_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2017_12", feature = "dox"))]
+ fn equal(&self, b: &Repo) -> bool;
+
+ //fn export_tree_to_archive<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoExportArchiveOptions, root: &RepoFile, archive: P, cancellable: Q) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2017_15", feature = "dox"))]
+ fn fsck_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn get_collection_id(&self) -> Option<String>;
+
+ fn get_config(&self) -> Option<glib::KeyFile>;
+
+ fn get_dfd(&self) -> i32;
+
+ fn get_disable_fsync(&self) -> bool;
+
+ fn get_mode(&self) -> RepoMode;
+
+ fn get_parent(&self) -> Option<Repo>;
+
+ fn get_path(&self) -> Option<gio::File>;
+
+ fn get_remote_boolean_option(&self, remote_name: &str, option_name: &str, default_value: bool) -> Result<bool, Error>;
+
+ fn get_remote_list_option(&self, remote_name: &str, option_name: &str) -> Result<Vec<String>, Error>;
+
+ fn get_remote_option<'a, P: Into<Option<&'a str>>>(&self, remote_name: &str, option_name: &str, default_value: P) -> Result<String, Error>;
+
+ fn gpg_verify_data<'a, 'b, 'c, 'd, P: Into<Option<&'a str>>, Q: IsA<gio::File> + 'b, R: Into<Option<&'b Q>>, S: IsA<gio::File> + 'c, T: Into<Option<&'c S>>, U: Into<Option<&'d gio::Cancellable>>>(&self, remote_name: P, data: &glib::Bytes, signatures: &glib::Bytes, keyringdir: R, extra_keyring: T, cancellable: U) -> Result<GpgVerifyResult, Error>;
+
+ fn has_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<bool, Error>;
+
+ #[cfg(any(feature = "v2017_12", feature = "dox"))]
+ fn hash(&self) -> u32;
+
+ //fn import_archive_to_mtree<'a, 'b, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoImportArchiveOptions, archive: P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error>;
+
+ fn import_object_from<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(), Error>;
+
+ fn import_object_from_with_trust<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, trusted: bool, cancellable: P) -> Result<(), Error>;
+
+ fn is_system(&self) -> bool;
+
+ fn is_writable(&self) -> Result<(), Error>;
+
+ //#[cfg(any(feature = "v2018_6", feature = "dox"))]
+ //fn list_collection_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, match_collection_id: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error>;
+
+ //fn list_commit_objects_starting_with<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, start: &str, out_commits: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
+
+ //fn list_objects<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: /*Ignored*/RepoListObjectsFlags, out_objects: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
+
+ //fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: Q) -> Result<(), Error>;
+
+ //fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error>;
+
+ //fn list_static_delta_names<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, out_deltas: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2015_7", feature = "dox"))]
+ fn load_commit(&self, checksum: &str) -> Result<(glib::Variant, RepoCommitState), Error>;
+
+ fn load_file<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<(Option<gio::InputStream>, Option<gio::FileInfo>, Option<glib::Variant>), Error>;
+
+ fn load_object_stream<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(gio::InputStream, u64), Error>;
+
+ fn load_variant(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error>;
+
+ fn load_variant_if_exists(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error>;
+
+ #[cfg(any(feature = "v2017_15", feature = "dox"))]
+ fn mark_commit_partial(&self, checksum: &str, is_partial: bool) -> Result<(), Error>;
+
+ fn open<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
+
+ fn prepare_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<bool, Error>;
+
+ fn prune<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: RepoPruneFlags, depth: i32, cancellable: P) -> Result<(i32, i32, u64), Error>;
+
+ //fn prune_from_reachable<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, options: /*Ignored*/&mut RepoPruneOptions, cancellable: P) -> Result<(i32, i32, u64), Error>;
+
+ fn prune_static_deltas<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit: P, cancellable: Q) -> Result<(), Error>;
+
+ fn pull<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error>;
+
+ fn pull_one_dir<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, dir_to_pull: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error>;
+
+ fn pull_with_options<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name_or_baseurl: &str, options: &glib::Variant, progress: P, cancellable: Q) -> Result<(), Error>;
+
+ fn query_object_storage_size<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<u64, Error>;
+
+ fn read_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &str, cancellable: P) -> Result<(gio::File, String), Error>;
+
+ fn read_commit_detached_metadata<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<glib::Variant, Error>;
+
+ fn regenerate_summary<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, additional_metadata: P, cancellable: Q) -> Result<(), Error>;
+
+ fn reload_config<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
+
+ fn remote_add<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, url: &str, options: P, cancellable: Q) -> Result<(), Error>;
+
+ fn remote_change<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: Into<Option<&'b glib::Variant>>, S: Into<Option<&'c gio::Cancellable>>>(&self, sysroot: Q, changeop: RepoRemoteChange, name: &str, url: &str, options: R, cancellable: S) -> Result<(), Error>;
+
+ fn remote_delete<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(), Error>;
+
+ fn remote_fetch_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(glib::Bytes, glib::Bytes), Error>;
+
+ fn remote_fetch_summary_with_options<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, options: P, cancellable: Q) -> Result<(glib::Bytes, glib::Bytes), Error>;
+
+ fn remote_get_gpg_verify(&self, name: &str) -> Result<bool, Error>;
+
+ fn remote_get_gpg_verify_summary(&self, name: &str) -> Result<bool, Error>;
+
+ fn remote_get_url(&self, name: &str) -> Result<String, Error>;
+
+ fn remote_list(&self) -> Vec<String>;
+
+ //#[cfg(any(feature = "v2018_6", feature = "dox"))]
+ //fn remote_list_collection_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error>;
+
+ //fn remote_list_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn resolve_collection_ref<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &CollectionRef, allow_noent: bool, flags: RepoResolveRevExtFlags, cancellable: P) -> Result<Option<String>, Error>;
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn resolve_keyring_for_collection<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, collection_id: &str, cancellable: P) -> Result<Remote, Error>;
+
+ fn resolve_rev(&self, refspec: &str, allow_noent: bool) -> Result<String, Error>;
+
+ fn resolve_rev_ext(&self, refspec: &str, allow_noent: bool, flags: RepoResolveRevExtFlags) -> Result<String, Error>;
+
+ fn scan_hardlinks<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error>;
+
+ fn set_alias_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, target: Q, cancellable: R) -> Result<(), Error>;
+
+ fn set_cache_dir<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, dfd: i32, path: &str, cancellable: P) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn set_collection_id<'a, P: Into<Option<&'a str>>>(&self, collection_id: P) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn set_collection_ref_immediate<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, ref_: &CollectionRef, checksum: P, cancellable: Q) -> Result<(), Error>;
+
+ fn set_disable_fsync(&self, disable_fsync: bool);
+
+ fn set_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, checksum: Q, cancellable: R) -> Result<(), Error>;
+
+ fn sign_commit<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit_checksum: &str, key_id: &str, homedir: P, cancellable: Q) -> Result<(), Error>;
+
+ fn sign_delta<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, from_commit: &str, to_commit: &str, key_id: &str, homedir: &str, cancellable: P) -> Result<(), Error>;
+
+ fn static_delta_execute_offline<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, dir_or_file: &P, skip_validation: bool, cancellable: Q) -> Result<(), Error>;
+
+ fn static_delta_generate<'a, 'b, 'c, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b glib::Variant>>, R: Into<Option<&'c gio::Cancellable>>>(&self, opt: StaticDeltaGenerateOpt, from: &str, to: &str, metadata: P, params: Q, cancellable: R) -> Result<(), Error>;
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn transaction_set_collection_ref<'a, P: Into<Option<&'a str>>>(&self, ref_: &CollectionRef, checksum: P);
+
+ fn transaction_set_ref<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>>(&self, remote: P, ref_: &str, checksum: Q);
+
+ fn transaction_set_refspec<'a, P: Into<Option<&'a str>>>(&self, refspec: &str, checksum: P);
+
+ //fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, out_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
+
+ //fn traverse_commit_union<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error>;
+
+ //#[cfg(any(feature = "v2018_5", feature = "dox"))]
+ //fn traverse_commit_union_with_parents<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, inout_parents: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error>;
+
+ //#[cfg(any(feature = "v2018_6", feature = "dox"))]
+ //fn traverse_reachable_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, depth: u32, reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error>;
+
+ fn verify_commit<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<(), Error>;
+
+ fn verify_commit_ext<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<GpgVerifyResult, Error>;
+
+ fn verify_commit_for_remote<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, remote_name: &str, cancellable: P) -> Result<GpgVerifyResult, Error>;
+
+ fn verify_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, summary: &glib::Bytes, signatures: &glib::Bytes, cancellable: P) -> Result<GpgVerifyResult, Error>;
+
+ fn write_archive_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, archive: &P, mtree: &MutableTree, modifier: Q, autocreate_parents: bool, cancellable: R) -> Result<(), Error>;
+
+ fn write_commit<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, cancellable: T) -> Result<String, Error>;
+
+ fn write_commit_detached_metadata<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, checksum: &str, metadata: P, cancellable: Q) -> Result<(), Error>;
+
+ fn write_commit_with_time<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, time: u64, cancellable: T) -> Result<String, Error>;
+
+ fn write_config(&self, new_config: &glib::KeyFile) -> Result<(), Error>;
+
+ //fn write_content<'a, 'b, P: Into<Option<&'a str>>, Q: IsA<gio::InputStream>, R: Into<Option<&'b gio::Cancellable>>>(&self, expected_checksum: P, object_input: &Q, length: u64, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: R) -> Result<(), Error>;
+
+ fn write_content_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error>;
+
+ fn write_dfd_to_mtree<'a, 'b, P: Into<Option<&'a RepoCommitModifier>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, dfd: i32, path: &str, mtree: &MutableTree, modifier: P, cancellable: Q) -> Result<(), Error>;
+
+ fn write_directory_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, dir: &P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error>;
+
+ //fn write_metadata<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, objtype: ObjectType, expected_checksum: P, object: &glib::Variant, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: Q) -> Result<(), Error>;
+
+ fn write_metadata_stream_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error>;
+
+ fn write_metadata_trusted<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, variant: &glib::Variant, cancellable: P) -> Result<(), Error>;
+
+ fn write_mtree<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mtree: &MutableTree, cancellable: P) -> Result<gio::File, Error>;
+
+ fn get_property_remotes_config_dir(&self) -> Option<String>;
+
+ fn get_property_sysroot_path(&self) -> Option<gio::File>;
+
+ fn connect_gpg_verify_result<F: Fn(&Self, &str, &GpgVerifyResult) + 'static>(&self, f: F) -> SignalHandlerId;
+}
+
+impl<O: IsA<Repo> + IsA<glib::object::Object>> RepoExt for O {
+ fn abort_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_abort_transaction(self.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn add_gpg_signature_summary<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, key_id: &[&str], homedir: P, cancellable: Q) -> Result<(), Error> {
+ let homedir = homedir.into();
+ let homedir = homedir.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_add_gpg_signature_summary(self.to_glib_none().0, key_id.to_glib_none().0, homedir.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn append_gpg_signature<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, signature_bytes: &glib::Bytes, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_append_gpg_signature(self.to_glib_none().0, commit_checksum.to_glib_none().0, signature_bytes.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //fn checkout_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutAtOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_checkout_at() }
+ //}
+
+ fn checkout_gc<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_checkout_gc(self.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn checkout_tree<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoCheckoutMode, overwrite_mode: RepoCheckoutOverwriteMode, destination: &P, source: &RepoFile, source_info: &gio::FileInfo, cancellable: Q) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_checkout_tree(self.to_glib_none().0, mode.to_glib(), overwrite_mode.to_glib(), destination.to_glib_none().0, source.to_glib_none().0, source_info.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //fn checkout_tree_at<'a, 'b, P: Into<Option<&'a /*Ignored*/RepoCheckoutOptions>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, options: P, destination_dfd: i32, destination_path: &str, commit: &str, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_checkout_tree_at() }
+ //}
+
+ fn commit_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<RepoTransactionStats, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_stats = RepoTransactionStats::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_commit_transaction(self.to_glib_none().0, out_stats.to_glib_none_mut().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(out_stats) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn copy_config(&self) -> Option<glib::KeyFile> {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_copy_config(self.to_glib_none().0))
+ }
+ }
+
+ fn create<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mode: RepoMode, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_create(self.to_glib_none().0, mode.to_glib(), cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn delete_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_delete_object(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2017_12", feature = "dox"))]
+ fn equal(&self, b: &Repo) -> bool {
+ unsafe {
+ from_glib(ffi::ostree_repo_equal(self.to_glib_none().0, b.to_glib_none().0))
+ }
+ }
+
+ //fn export_tree_to_archive<'a, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoExportArchiveOptions, root: &RepoFile, archive: P, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_export_tree_to_archive() }
+ //}
+
+ #[cfg(any(feature = "v2017_15", feature = "dox"))]
+ fn fsck_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_fsck_object(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn get_collection_id(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_get_collection_id(self.to_glib_none().0))
+ }
+ }
+
+ fn get_config(&self) -> Option<glib::KeyFile> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_get_config(self.to_glib_none().0))
+ }
+ }
+
+ fn get_dfd(&self) -> i32 {
+ unsafe {
+ ffi::ostree_repo_get_dfd(self.to_glib_none().0)
+ }
+ }
+
+ fn get_disable_fsync(&self) -> bool {
+ unsafe {
+ from_glib(ffi::ostree_repo_get_disable_fsync(self.to_glib_none().0))
+ }
+ }
+
+ fn get_mode(&self) -> RepoMode {
+ unsafe {
+ from_glib(ffi::ostree_repo_get_mode(self.to_glib_none().0))
+ }
+ }
+
+ fn get_parent(&self) -> Option<Repo> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_get_parent(self.to_glib_none().0))
+ }
+ }
+
+ fn get_path(&self) -> Option<gio::File> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_get_path(self.to_glib_none().0))
+ }
+ }
+
+ fn get_remote_boolean_option(&self, remote_name: &str, option_name: &str, default_value: bool) -> Result<bool, Error> {
+ unsafe {
+ let mut out_value = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_get_remote_boolean_option(self.to_glib_none().0, remote_name.to_glib_none().0, option_name.to_glib_none().0, default_value.to_glib(), &mut out_value, &mut error);
+ if error.is_null() { Ok(from_glib(out_value)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn get_remote_list_option(&self, remote_name: &str, option_name: &str) -> Result<Vec<String>, Error> {
+ unsafe {
+ let mut out_value = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_get_remote_list_option(self.to_glib_none().0, remote_name.to_glib_none().0, option_name.to_glib_none().0, &mut out_value, &mut error);
+ if error.is_null() { Ok(FromGlibPtrContainer::from_glib_full(out_value)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn get_remote_option<'a, P: Into<Option<&'a str>>>(&self, remote_name: &str, option_name: &str, default_value: P) -> Result<String, Error> {
+ let default_value = default_value.into();
+ let default_value = default_value.to_glib_none();
+ unsafe {
+ let mut out_value = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_get_remote_option(self.to_glib_none().0, remote_name.to_glib_none().0, option_name.to_glib_none().0, default_value.0, &mut out_value, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_value)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn gpg_verify_data<'a, 'b, 'c, 'd, P: Into<Option<&'a str>>, Q: IsA<gio::File> + 'b, R: Into<Option<&'b Q>>, S: IsA<gio::File> + 'c, T: Into<Option<&'c S>>, U: Into<Option<&'d gio::Cancellable>>>(&self, remote_name: P, data: &glib::Bytes, signatures: &glib::Bytes, keyringdir: R, extra_keyring: T, cancellable: U) -> Result<GpgVerifyResult, Error> {
+ let remote_name = remote_name.into();
+ let remote_name = remote_name.to_glib_none();
+ let keyringdir = keyringdir.into();
+ let keyringdir = keyringdir.to_glib_none();
+ let extra_keyring = extra_keyring.into();
+ let extra_keyring = extra_keyring.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_gpg_verify_data(self.to_glib_none().0, remote_name.0, data.to_glib_none().0, signatures.to_glib_none().0, keyringdir.0, extra_keyring.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn has_object<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<bool, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_have_object = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_has_object(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, &mut out_have_object, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib(out_have_object)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2017_12", feature = "dox"))]
+ fn hash(&self) -> u32 {
+ unsafe {
+ ffi::ostree_repo_hash(self.to_glib_none().0)
+ }
+ }
+
+ //fn import_archive_to_mtree<'a, 'b, P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, opts: /*Ignored*/&mut RepoImportArchiveOptions, archive: P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_import_archive_to_mtree() }
+ //}
+
+ fn import_object_from<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_import_object_from(self.to_glib_none().0, source.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn import_object_from_with_trust<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, source: &Repo, objtype: ObjectType, checksum: &str, trusted: bool, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_import_object_from_with_trust(self.to_glib_none().0, source.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, trusted.to_glib(), cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn is_system(&self) -> bool {
+ unsafe {
+ from_glib(ffi::ostree_repo_is_system(self.to_glib_none().0))
+ }
+ }
+
+ fn is_writable(&self) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_is_writable(self.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //#[cfg(any(feature = "v2018_6", feature = "dox"))]
+ //fn list_collection_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, match_collection_id: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_list_collection_refs() }
+ //}
+
+ //fn list_commit_objects_starting_with<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, start: &str, out_commits: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_list_commit_objects_starting_with() }
+ //}
+
+ //fn list_objects<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: /*Ignored*/RepoListObjectsFlags, out_objects: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_list_objects() }
+ //}
+
+ //fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_list_refs() }
+ //}
+
+ //fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, refspec_prefix: P, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, flags: RepoListRefsExtFlags, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_list_refs_ext() }
+ //}
+
+ //fn list_static_delta_names<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, out_deltas: /*Unknown conversion*//*Unimplemented*/PtrArray TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_list_static_delta_names() }
+ //}
+
+ #[cfg(any(feature = "v2015_7", feature = "dox"))]
+ fn load_commit(&self, checksum: &str) -> Result<(glib::Variant, RepoCommitState), Error> {
+ unsafe {
+ let mut out_commit = ptr::null_mut();
+ let mut out_state = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_load_commit(self.to_glib_none().0, checksum.to_glib_none().0, &mut out_commit, &mut out_state, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_commit), from_glib(out_state))) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn load_file<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<(Option<gio::InputStream>, Option<gio::FileInfo>, Option<glib::Variant>), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut out_file_info = ptr::null_mut();
+ let mut out_xattrs = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_load_file(self.to_glib_none().0, checksum.to_glib_none().0, &mut out_input, &mut out_file_info, &mut out_xattrs, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_input), from_glib_full(out_file_info), from_glib_full(out_xattrs))) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn load_object_stream<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, cancellable: P) -> Result<(gio::InputStream, u64), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_input = ptr::null_mut();
+ let mut out_size = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_load_object_stream(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, &mut out_input, &mut out_size, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_input), out_size)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn load_variant(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error> {
+ unsafe {
+ let mut out_variant = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_load_variant(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, &mut out_variant, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_variant)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn load_variant_if_exists(&self, objtype: ObjectType, sha256: &str) -> Result<glib::Variant, Error> {
+ unsafe {
+ let mut out_variant = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_load_variant_if_exists(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, &mut out_variant, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_variant)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2017_15", feature = "dox"))]
+ fn mark_commit_partial(&self, checksum: &str, is_partial: bool) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_mark_commit_partial(self.to_glib_none().0, checksum.to_glib_none().0, is_partial.to_glib(), &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn open<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_open(self.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn prepare_transaction<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<bool, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_transaction_resume = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_prepare_transaction(self.to_glib_none().0, &mut out_transaction_resume, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib(out_transaction_resume)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn prune<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, flags: RepoPruneFlags, depth: i32, cancellable: P) -> Result<(i32, i32, u64), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_objects_total = mem::uninitialized();
+ let mut out_objects_pruned = mem::uninitialized();
+ let mut out_pruned_object_size_total = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_prune(self.to_glib_none().0, flags.to_glib(), depth, &mut out_objects_total, &mut out_objects_pruned, &mut out_pruned_object_size_total, cancellable.0, &mut error);
+ if error.is_null() { Ok((out_objects_total, out_objects_pruned, out_pruned_object_size_total)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //fn prune_from_reachable<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, options: /*Ignored*/&mut RepoPruneOptions, cancellable: P) -> Result<(i32, i32, u64), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_prune_from_reachable() }
+ //}
+
+ fn prune_static_deltas<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit: P, cancellable: Q) -> Result<(), Error> {
+ let commit = commit.into();
+ let commit = commit.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_prune_static_deltas(self.to_glib_none().0, commit.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn pull<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error> {
+ let progress = progress.into();
+ let progress = progress.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_pull(self.to_glib_none().0, remote_name.to_glib_none().0, refs_to_fetch.to_glib_none().0, flags.to_glib(), progress.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn pull_one_dir<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name: &str, dir_to_pull: &str, refs_to_fetch: &[&str], flags: RepoPullFlags, progress: P, cancellable: Q) -> Result<(), Error> {
+ let progress = progress.into();
+ let progress = progress.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_pull_one_dir(self.to_glib_none().0, remote_name.to_glib_none().0, dir_to_pull.to_glib_none().0, refs_to_fetch.to_glib_none().0, flags.to_glib(), progress.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn pull_with_options<'a, 'b, P: Into<Option<&'a AsyncProgress>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, remote_name_or_baseurl: &str, options: &glib::Variant, progress: P, cancellable: Q) -> Result<(), Error> {
+ let progress = progress.into();
+ let progress = progress.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_pull_with_options(self.to_glib_none().0, remote_name_or_baseurl.to_glib_none().0, options.to_glib_none().0, progress.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn query_object_storage_size<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, sha256: &str, cancellable: P) -> Result<u64, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_size = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_query_object_storage_size(self.to_glib_none().0, objtype.to_glib(), sha256.to_glib_none().0, &mut out_size, cancellable.0, &mut error);
+ if error.is_null() { Ok(out_size) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn read_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &str, cancellable: P) -> Result<(gio::File, String), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_root = ptr::null_mut();
+ let mut out_commit = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_read_commit(self.to_glib_none().0, ref_.to_glib_none().0, &mut out_root, &mut out_commit, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_root), from_glib_full(out_commit))) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn read_commit_detached_metadata<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, cancellable: P) -> Result<glib::Variant, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_metadata = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_read_commit_detached_metadata(self.to_glib_none().0, checksum.to_glib_none().0, &mut out_metadata, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_metadata)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn regenerate_summary<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, additional_metadata: P, cancellable: Q) -> Result<(), Error> {
+ let additional_metadata = additional_metadata.into();
+ let additional_metadata = additional_metadata.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_regenerate_summary(self.to_glib_none().0, additional_metadata.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn reload_config<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_reload_config(self.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_add<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, url: &str, options: P, cancellable: Q) -> Result<(), Error> {
+ let options = options.into();
+ let options = options.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_add(self.to_glib_none().0, name.to_glib_none().0, url.to_glib_none().0, options.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_change<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: Into<Option<&'b glib::Variant>>, S: Into<Option<&'c gio::Cancellable>>>(&self, sysroot: Q, changeop: RepoRemoteChange, name: &str, url: &str, options: R, cancellable: S) -> Result<(), Error> {
+ let sysroot = sysroot.into();
+ let sysroot = sysroot.to_glib_none();
+ let options = options.into();
+ let options = options.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_change(self.to_glib_none().0, sysroot.0, changeop.to_glib(), name.to_glib_none().0, url.to_glib_none().0, options.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_delete<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_delete(self.to_glib_none().0, name.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_fetch_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, name: &str, cancellable: P) -> Result<(glib::Bytes, glib::Bytes), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_summary = ptr::null_mut();
+ let mut out_signatures = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_fetch_summary(self.to_glib_none().0, name.to_glib_none().0, &mut out_summary, &mut out_signatures, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_summary), from_glib_full(out_signatures))) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_fetch_summary_with_options<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, name: &str, options: P, cancellable: Q) -> Result<(glib::Bytes, glib::Bytes), Error> {
+ let options = options.into();
+ let options = options.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_summary = ptr::null_mut();
+ let mut out_signatures = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_fetch_summary_with_options(self.to_glib_none().0, name.to_glib_none().0, options.0, &mut out_summary, &mut out_signatures, cancellable.0, &mut error);
+ if error.is_null() { Ok((from_glib_full(out_summary), from_glib_full(out_signatures))) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_get_gpg_verify(&self, name: &str) -> Result<bool, Error> {
+ unsafe {
+ let mut out_gpg_verify = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_get_gpg_verify(self.to_glib_none().0, name.to_glib_none().0, &mut out_gpg_verify, &mut error);
+ if error.is_null() { Ok(from_glib(out_gpg_verify)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_get_gpg_verify_summary(&self, name: &str) -> Result<bool, Error> {
+ unsafe {
+ let mut out_gpg_verify_summary = mem::uninitialized();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_get_gpg_verify_summary(self.to_glib_none().0, name.to_glib_none().0, &mut out_gpg_verify_summary, &mut error);
+ if error.is_null() { Ok(from_glib(out_gpg_verify_summary)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_get_url(&self, name: &str) -> Result<String, Error> {
+ unsafe {
+ let mut out_url = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_remote_get_url(self.to_glib_none().0, name.to_glib_none().0, &mut out_url, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_url)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn remote_list(&self) -> Vec<String> {
+ unsafe {
+ let mut out_n_remotes = mem::uninitialized();
+ let ret = FromGlibContainer::from_glib_full_num(ffi::ostree_repo_remote_list(self.to_glib_none().0, &mut out_n_remotes), out_n_remotes as usize);
+ ret
+ }
+ }
+
+ //#[cfg(any(feature = "v2018_6", feature = "dox"))]
+ //fn remote_list_collection_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 1, id: 0 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_remote_list_collection_refs() }
+ //}
+
+ //fn remote_list_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, out_all_refs: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 28 }/TypeId { ns_id: 0, id: 28 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_remote_list_refs() }
+ //}
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn resolve_collection_ref<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, ref_: &CollectionRef, allow_noent: bool, flags: RepoResolveRevExtFlags, cancellable: P) -> Result<Option<String>, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_rev = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_resolve_collection_ref(self.to_glib_none().0, ref_.to_glib_none().0, allow_noent.to_glib(), flags.to_glib(), &mut out_rev, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_rev)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn resolve_keyring_for_collection<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, collection_id: &str, cancellable: P) -> Result<Remote, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_resolve_keyring_for_collection(self.to_glib_none().0, collection_id.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn resolve_rev(&self, refspec: &str, allow_noent: bool) -> Result<String, Error> {
+ unsafe {
+ let mut out_rev = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_resolve_rev(self.to_glib_none().0, refspec.to_glib_none().0, allow_noent.to_glib(), &mut out_rev, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_rev)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn resolve_rev_ext(&self, refspec: &str, allow_noent: bool, flags: RepoResolveRevExtFlags) -> Result<String, Error> {
+ unsafe {
+ let mut out_rev = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_resolve_rev_ext(self.to_glib_none().0, refspec.to_glib_none().0, allow_noent.to_glib(), flags.to_glib(), &mut out_rev, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_rev)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn scan_hardlinks<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_scan_hardlinks(self.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn set_alias_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, target: Q, cancellable: R) -> Result<(), Error> {
+ let remote = remote.into();
+ let remote = remote.to_glib_none();
+ let target = target.into();
+ let target = target.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_set_alias_ref_immediate(self.to_glib_none().0, remote.0, ref_.to_glib_none().0, target.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn set_cache_dir<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, dfd: i32, path: &str, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_set_cache_dir(self.to_glib_none().0, dfd, path.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn set_collection_id<'a, P: Into<Option<&'a str>>>(&self, collection_id: P) -> Result<(), Error> {
+ let collection_id = collection_id.into();
+ let collection_id = collection_id.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_set_collection_id(self.to_glib_none().0, collection_id.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn set_collection_ref_immediate<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, ref_: &CollectionRef, checksum: P, cancellable: Q) -> Result<(), Error> {
+ let checksum = checksum.into();
+ let checksum = checksum.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_set_collection_ref_immediate(self.to_glib_none().0, ref_.to_glib_none().0, checksum.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn set_disable_fsync(&self, disable_fsync: bool) {
+ unsafe {
+ ffi::ostree_repo_set_disable_fsync(self.to_glib_none().0, disable_fsync.to_glib());
+ }
+ }
+
+ fn set_ref_immediate<'a, 'b, 'c, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c gio::Cancellable>>>(&self, remote: P, ref_: &str, checksum: Q, cancellable: R) -> Result<(), Error> {
+ let remote = remote.into();
+ let remote = remote.to_glib_none();
+ let checksum = checksum.into();
+ let checksum = checksum.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_set_ref_immediate(self.to_glib_none().0, remote.0, ref_.to_glib_none().0, checksum.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn sign_commit<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, commit_checksum: &str, key_id: &str, homedir: P, cancellable: Q) -> Result<(), Error> {
+ let homedir = homedir.into();
+ let homedir = homedir.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_sign_commit(self.to_glib_none().0, commit_checksum.to_glib_none().0, key_id.to_glib_none().0, homedir.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn sign_delta<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, from_commit: &str, to_commit: &str, key_id: &str, homedir: &str, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_sign_delta(self.to_glib_none().0, from_commit.to_glib_none().0, to_commit.to_glib_none().0, key_id.to_glib_none().0, homedir.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn static_delta_execute_offline<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(&self, dir_or_file: &P, skip_validation: bool, cancellable: Q) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_static_delta_execute_offline(self.to_glib_none().0, dir_or_file.to_glib_none().0, skip_validation.to_glib(), cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn static_delta_generate<'a, 'b, 'c, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b glib::Variant>>, R: Into<Option<&'c gio::Cancellable>>>(&self, opt: StaticDeltaGenerateOpt, from: &str, to: &str, metadata: P, params: Q, cancellable: R) -> Result<(), Error> {
+ let metadata = metadata.into();
+ let metadata = metadata.to_glib_none();
+ let params = params.into();
+ let params = params.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_static_delta_generate(self.to_glib_none().0, opt.to_glib(), from.to_glib_none().0, to.to_glib_none().0, metadata.0, params.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn transaction_set_collection_ref<'a, P: Into<Option<&'a str>>>(&self, ref_: &CollectionRef, checksum: P) {
+ let checksum = checksum.into();
+ let checksum = checksum.to_glib_none();
+ unsafe {
+ ffi::ostree_repo_transaction_set_collection_ref(self.to_glib_none().0, ref_.to_glib_none().0, checksum.0);
+ }
+ }
+
+ fn transaction_set_ref<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>>(&self, remote: P, ref_: &str, checksum: Q) {
+ let remote = remote.into();
+ let remote = remote.to_glib_none();
+ let checksum = checksum.into();
+ let checksum = checksum.to_glib_none();
+ unsafe {
+ ffi::ostree_repo_transaction_set_ref(self.to_glib_none().0, remote.0, ref_.to_glib_none().0, checksum.0);
+ }
+ }
+
+ fn transaction_set_refspec<'a, P: Into<Option<&'a str>>>(&self, refspec: &str, checksum: P) {
+ let checksum = checksum.into();
+ let checksum = checksum.to_glib_none();
+ unsafe {
+ ffi::ostree_repo_transaction_set_refspec(self.to_glib_none().0, refspec.to_glib_none().0, checksum.0);
+ }
+ }
+
+ //fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, out_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_commit() }
+ //}
+
+ //fn traverse_commit_union<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_commit_union() }
+ //}
+
+ //#[cfg(any(feature = "v2018_5", feature = "dox"))]
+ //fn traverse_commit_union_with_parents<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, maxdepth: i32, inout_reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, inout_parents: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 0, id: 25 }/TypeId { ns_id: 0, id: 25 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_commit_union_with_parents() }
+ //}
+
+ //#[cfg(any(feature = "v2018_6", feature = "dox"))]
+ //fn traverse_reachable_refs<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, depth: u32, reachable: /*Unknown conversion*//*Unimplemented*/HashTable TypeId { ns_id: 2, id: 181 }/TypeId { ns_id: 2, id: 181 }, cancellable: P) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_traverse_reachable_refs() }
+ //}
+
+ fn verify_commit<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<(), Error> {
+ let keyringdir = keyringdir.into();
+ let keyringdir = keyringdir.to_glib_none();
+ let extra_keyring = extra_keyring.into();
+ let extra_keyring = extra_keyring.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_verify_commit(self.to_glib_none().0, commit_checksum.to_glib_none().0, keyringdir.0, extra_keyring.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn verify_commit_ext<'a, 'b, 'c, P: IsA<gio::File> + 'a, Q: Into<Option<&'a P>>, R: IsA<gio::File> + 'b, S: Into<Option<&'b R>>, T: Into<Option<&'c gio::Cancellable>>>(&self, commit_checksum: &str, keyringdir: Q, extra_keyring: S, cancellable: T) -> Result<GpgVerifyResult, Error> {
+ let keyringdir = keyringdir.into();
+ let keyringdir = keyringdir.to_glib_none();
+ let extra_keyring = extra_keyring.into();
+ let extra_keyring = extra_keyring.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_verify_commit_ext(self.to_glib_none().0, commit_checksum.to_glib_none().0, keyringdir.0, extra_keyring.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn verify_commit_for_remote<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, commit_checksum: &str, remote_name: &str, cancellable: P) -> Result<GpgVerifyResult, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_verify_commit_for_remote(self.to_glib_none().0, commit_checksum.to_glib_none().0, remote_name.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn verify_summary<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, remote_name: &str, summary: &glib::Bytes, signatures: &glib::Bytes, cancellable: P) -> Result<GpgVerifyResult, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_repo_verify_summary(self.to_glib_none().0, remote_name.to_glib_none().0, summary.to_glib_none().0, signatures.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_archive_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, archive: &P, mtree: &MutableTree, modifier: Q, autocreate_parents: bool, cancellable: R) -> Result<(), Error> {
+ let modifier = modifier.into();
+ let modifier = modifier.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_archive_to_mtree(self.to_glib_none().0, archive.to_glib_none().0, mtree.to_glib_none().0, modifier.0, autocreate_parents.to_glib(), cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_commit<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, cancellable: T) -> Result<String, Error> {
+ let parent = parent.into();
+ let parent = parent.to_glib_none();
+ let subject = subject.into();
+ let subject = subject.to_glib_none();
+ let body = body.into();
+ let body = body.to_glib_none();
+ let metadata = metadata.into();
+ let metadata = metadata.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_commit = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_commit(self.to_glib_none().0, parent.0, subject.0, body.0, metadata.0, root.to_glib_none().0, &mut out_commit, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_commit)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_commit_detached_metadata<'a, 'b, P: Into<Option<&'a glib::Variant>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, checksum: &str, metadata: P, cancellable: Q) -> Result<(), Error> {
+ let metadata = metadata.into();
+ let metadata = metadata.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_commit_detached_metadata(self.to_glib_none().0, checksum.to_glib_none().0, metadata.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_commit_with_time<'a, 'b, 'c, 'd, 'e, P: Into<Option<&'a str>>, Q: Into<Option<&'b str>>, R: Into<Option<&'c str>>, S: Into<Option<&'d glib::Variant>>, T: Into<Option<&'e gio::Cancellable>>>(&self, parent: P, subject: Q, body: R, metadata: S, root: &RepoFile, time: u64, cancellable: T) -> Result<String, Error> {
+ let parent = parent.into();
+ let parent = parent.to_glib_none();
+ let subject = subject.into();
+ let subject = subject.to_glib_none();
+ let body = body.into();
+ let body = body.to_glib_none();
+ let metadata = metadata.into();
+ let metadata = metadata.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_commit = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_commit_with_time(self.to_glib_none().0, parent.0, subject.0, body.0, metadata.0, root.to_glib_none().0, time, &mut out_commit, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_commit)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_config(&self, new_config: &glib::KeyFile) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_config(self.to_glib_none().0, new_config.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //fn write_content<'a, 'b, P: Into<Option<&'a str>>, Q: IsA<gio::InputStream>, R: Into<Option<&'b gio::Cancellable>>>(&self, expected_checksum: P, object_input: &Q, length: u64, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: R) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_write_content() }
+ //}
+
+ fn write_content_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_content_trusted(self.to_glib_none().0, checksum.to_glib_none().0, object_input.to_glib_none().0, length, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_dfd_to_mtree<'a, 'b, P: Into<Option<&'a RepoCommitModifier>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, dfd: i32, path: &str, mtree: &MutableTree, modifier: P, cancellable: Q) -> Result<(), Error> {
+ let modifier = modifier.into();
+ let modifier = modifier.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_dfd_to_mtree(self.to_glib_none().0, dfd, path.to_glib_none().0, mtree.to_glib_none().0, modifier.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_directory_to_mtree<'a, 'b, P: IsA<gio::File>, Q: Into<Option<&'a RepoCommitModifier>>, R: Into<Option<&'b gio::Cancellable>>>(&self, dir: &P, mtree: &MutableTree, modifier: Q, cancellable: R) -> Result<(), Error> {
+ let modifier = modifier.into();
+ let modifier = modifier.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_directory_to_mtree(self.to_glib_none().0, dir.to_glib_none().0, mtree.to_glib_none().0, modifier.0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //fn write_metadata<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(&self, objtype: ObjectType, expected_checksum: P, object: &glib::Variant, out_csum: /*Unknown conversion*//*Unimplemented*/FixedArray TypeId { ns_id: 0, id: 3 }; 32, cancellable: Q) -> Result<(), Error> {
+ // unsafe { TODO: call ffi::ostree_repo_write_metadata() }
+ //}
+
+ fn write_metadata_stream_trusted<'a, P: IsA<gio::InputStream>, Q: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, object_input: &P, length: u64, cancellable: Q) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_metadata_stream_trusted(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, object_input.to_glib_none().0, length, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_metadata_trusted<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, objtype: ObjectType, checksum: &str, variant: &glib::Variant, cancellable: P) -> Result<(), Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_metadata_trusted(self.to_glib_none().0, objtype.to_glib(), checksum.to_glib_none().0, variant.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn write_mtree<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, mtree: &MutableTree, cancellable: P) -> Result<gio::File, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_file = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_write_mtree(self.to_glib_none().0, mtree.to_glib_none().0, &mut out_file, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_file)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn get_property_remotes_config_dir(&self) -> Option<String> {
+ unsafe {
+ let mut value = Value::from_type(<String as StaticType>::static_type());
+ gobject_ffi::g_object_get_property(self.to_glib_none().0, "remotes-config-dir".to_glib_none().0, value.to_glib_none_mut().0);
+ value.get()
+ }
+ }
+
+ fn get_property_sysroot_path(&self) -> Option<gio::File> {
+ unsafe {
+ let mut value = Value::from_type(<gio::File as StaticType>::static_type());
+ gobject_ffi::g_object_get_property(self.to_glib_none().0, "sysroot-path".to_glib_none().0, value.to_glib_none_mut().0);
+ value.get()
+ }
+ }
+
+ fn connect_gpg_verify_result<F: Fn(&Self, &str, &GpgVerifyResult) + 'static>(&self, f: F) -> SignalHandlerId {
+ unsafe {
+ let f: Box_<Box_<Fn(&Self, &str, &GpgVerifyResult) + 'static>> = Box_::new(Box_::new(f));
+ connect(self.to_glib_none().0, "gpg-verify-result",
+ transmute(gpg_verify_result_trampoline::<Self> as usize), Box_::into_raw(f) as *mut _)
+ }
+ }
+}
+
+unsafe extern "C" fn gpg_verify_result_trampoline<P>(this: *mut ffi::OstreeRepo, checksum: *mut libc::c_char, result: *mut ffi::OstreeGpgVerifyResult, f: glib_ffi::gpointer)
+where P: IsA<Repo> {
+ let f: &&(Fn(&P, &str, &GpgVerifyResult) + 'static) = transmute(f);
+ f(&Repo::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(checksum), &from_glib_borrow(result))
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+#[cfg(any(feature = "v2017_13", feature = "dox"))]
+use RepoDevInoCache;
+use SePolicy;
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
+ pub struct RepoCommitModifier(Shared<ffi::OstreeRepoCommitModifier>);
+
+ match fn {
+ ref => |ptr| ffi::ostree_repo_commit_modifier_ref(ptr),
+ unref => |ptr| ffi::ostree_repo_commit_modifier_unref(ptr),
+ get_type => || ffi::ostree_repo_commit_modifier_get_type(),
+ }
+}
+
+impl RepoCommitModifier {
+ //pub fn new<'a, P: Into<Option<&'a /*Unimplemented*/RepoCommitFilter>>>(flags: /*Ignored*/RepoCommitModifierFlags, commit_filter: P, destroy_notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) -> RepoCommitModifier {
+ // unsafe { TODO: call ffi::ostree_repo_commit_modifier_new() }
+ //}
+
+ #[cfg(any(feature = "v2017_13", feature = "dox"))]
+ pub fn set_devino_cache(&self, cache: &RepoDevInoCache) {
+ unsafe {
+ ffi::ostree_repo_commit_modifier_set_devino_cache(self.to_glib_none().0, cache.to_glib_none().0);
+ }
+ }
+
+ pub fn set_sepolicy<'a, P: Into<Option<&'a SePolicy>>>(&self, sepolicy: P) {
+ let sepolicy = sepolicy.into();
+ let sepolicy = sepolicy.to_glib_none();
+ unsafe {
+ ffi::ostree_repo_commit_modifier_set_sepolicy(self.to_glib_none().0, sepolicy.0);
+ }
+ }
+
+ //pub fn set_xattr_callback(&self, callback: /*Unknown conversion*//*Unimplemented*/RepoCommitModifierXattrCallback, destroy: /*Unknown conversion*//*Unimplemented*/DestroyNotify) {
+ // unsafe { TODO: call ffi::ostree_repo_commit_modifier_set_xattr_callback() }
+ //}
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
+ pub struct RepoDevInoCache(Shared<ffi::OstreeRepoDevInoCache>);
+
+ match fn {
+ ref => |ptr| ffi::ostree_repo_devino_cache_ref(ptr),
+ unref => |ptr| ffi::ostree_repo_devino_cache_unref(ptr),
+ get_type => || ffi::ostree_repo_devino_cache_get_type(),
+ }
+}
+
+impl RepoDevInoCache {
+ pub fn new() -> RepoDevInoCache {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_devino_cache_new())
+ }
+ }
+}
+
+impl Default for RepoDevInoCache {
+ fn default() -> Self {
+ Self::new()
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use Error;
+use Repo;
+use ffi;
+use gio;
+use gio_ffi;
+use glib;
+use glib::object::IsA;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct RepoFile(Object<ffi::OstreeRepoFile, ffi::OstreeRepoFileClass>): [
+ gio::File => gio_ffi::GFile,
+ ];
+
+ match fn {
+ get_type => || ffi::ostree_repo_file_get_type(),
+ }
+}
+
+pub trait RepoFileExt {
+ fn ensure_resolved(&self) -> Result<(), Error>;
+
+ fn get_checksum(&self) -> Option<String>;
+
+ fn get_repo(&self) -> Option<Repo>;
+
+ fn get_root(&self) -> Option<RepoFile>;
+
+ fn tree_get_contents(&self) -> Option<glib::Variant>;
+
+ fn tree_get_contents_checksum(&self) -> Option<String>;
+
+ fn tree_get_metadata(&self) -> Option<glib::Variant>;
+
+ fn tree_get_metadata_checksum(&self) -> Option<String>;
+
+ fn tree_set_metadata(&self, checksum: &str, metadata: &glib::Variant);
+}
+
+impl<O: IsA<RepoFile>> RepoFileExt for O {
+ fn ensure_resolved(&self) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_repo_file_ensure_resolved(self.to_glib_none().0, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn get_checksum(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_file_get_checksum(self.to_glib_none().0))
+ }
+ }
+
+ fn get_repo(&self) -> Option<Repo> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_file_get_repo(self.to_glib_none().0))
+ }
+ }
+
+ fn get_root(&self) -> Option<RepoFile> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_file_get_root(self.to_glib_none().0))
+ }
+ }
+
+ fn tree_get_contents(&self) -> Option<glib::Variant> {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_file_tree_get_contents(self.to_glib_none().0))
+ }
+ }
+
+ fn tree_get_contents_checksum(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_file_tree_get_contents_checksum(self.to_glib_none().0))
+ }
+ }
+
+ fn tree_get_metadata(&self) -> Option<glib::Variant> {
+ unsafe {
+ from_glib_full(ffi::ostree_repo_file_tree_get_metadata(self.to_glib_none().0))
+ }
+ }
+
+ fn tree_get_metadata_checksum(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_repo_file_tree_get_metadata_checksum(self.to_glib_none().0))
+ }
+ }
+
+ fn tree_set_metadata(&self, checksum: &str, metadata: &glib::Variant) {
+ unsafe {
+ ffi::ostree_repo_file_tree_set_metadata(self.to_glib_none().0, checksum.to_glib_none().0, metadata.to_glib_none().0);
+ }
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
+ pub struct RepoTransactionStats(Boxed<ffi::OstreeRepoTransactionStats>);
+
+ match fn {
+ copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _) as *mut ffi::OstreeRepoTransactionStats,
+ free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_repo_transaction_stats_get_type(), ptr as *mut _),
+ get_type => || ffi::ostree_repo_transaction_stats_get_type(),
+ }
+}
--- /dev/null
+// This file was generated by gir (https://github.com/gtk-rs/gir @ ffda6f9)
+// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
+// DO NOT EDIT
+
+use Error;
+use SePolicyRestoreconFlags;
+use ffi;
+use gio;
+use glib;
+use glib::StaticType;
+use glib::Value;
+use glib::object::IsA;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ pub struct SePolicy(Object<ffi::OstreeSePolicy>);
+
+ match fn {
+ get_type => || ffi::ostree_sepolicy_get_type(),
+ }
+}
+
+impl SePolicy {
+ pub fn new<'a, P: IsA<gio::File>, Q: Into<Option<&'a gio::Cancellable>>>(path: &P, cancellable: Q) -> Result<SePolicy, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_sepolicy_new(path.to_glib_none().0, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ pub fn new_at<'a, P: Into<Option<&'a gio::Cancellable>>>(rootfs_dfd: i32, cancellable: P) -> Result<SePolicy, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut error = ptr::null_mut();
+ let ret = ffi::ostree_sepolicy_new_at(rootfs_dfd, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ //pub fn fscreatecon_cleanup<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(unused: P) {
+ // unsafe { TODO: call ffi::ostree_sepolicy_fscreatecon_cleanup() }
+ //}
+}
+
+pub trait SePolicyExt {
+ fn get_csum(&self) -> Option<String>;
+
+ fn get_label<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, relpath: &str, unix_mode: u32, cancellable: P) -> Result<String, Error>;
+
+ fn get_name(&self) -> Option<String>;
+
+ fn get_path(&self) -> Option<gio::File>;
+
+ fn restorecon<'a, 'b, P: Into<Option<&'a gio::FileInfo>>, Q: IsA<gio::File>, R: Into<Option<&'b gio::Cancellable>>>(&self, path: &str, info: P, target: &Q, flags: SePolicyRestoreconFlags, cancellable: R) -> Result<String, Error>;
+
+ fn setfscreatecon(&self, path: &str, mode: u32) -> Result<(), Error>;
+
+ fn get_property_rootfs_dfd(&self) -> i32;
+}
+
+impl<O: IsA<SePolicy> + IsA<glib::object::Object>> SePolicyExt for O {
+ fn get_csum(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_sepolicy_get_csum(self.to_glib_none().0))
+ }
+ }
+
+ fn get_label<'a, P: Into<Option<&'a gio::Cancellable>>>(&self, relpath: &str, unix_mode: u32, cancellable: P) -> Result<String, Error> {
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_label = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_sepolicy_get_label(self.to_glib_none().0, relpath.to_glib_none().0, unix_mode, &mut out_label, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_label)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn get_name(&self) -> Option<String> {
+ unsafe {
+ from_glib_none(ffi::ostree_sepolicy_get_name(self.to_glib_none().0))
+ }
+ }
+
+ fn get_path(&self) -> Option<gio::File> {
+ unsafe {
+ from_glib_none(ffi::ostree_sepolicy_get_path(self.to_glib_none().0))
+ }
+ }
+
+ fn restorecon<'a, 'b, P: Into<Option<&'a gio::FileInfo>>, Q: IsA<gio::File>, R: Into<Option<&'b gio::Cancellable>>>(&self, path: &str, info: P, target: &Q, flags: SePolicyRestoreconFlags, cancellable: R) -> Result<String, Error> {
+ let info = info.into();
+ let info = info.to_glib_none();
+ let cancellable = cancellable.into();
+ let cancellable = cancellable.to_glib_none();
+ unsafe {
+ let mut out_new_label = ptr::null_mut();
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_sepolicy_restorecon(self.to_glib_none().0, path.to_glib_none().0, info.0, target.to_glib_none().0, flags.to_glib(), &mut out_new_label, cancellable.0, &mut error);
+ if error.is_null() { Ok(from_glib_full(out_new_label)) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn setfscreatecon(&self, path: &str, mode: u32) -> Result<(), Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let _ = ffi::ostree_sepolicy_setfscreatecon(self.to_glib_none().0, path.to_glib_none().0, mode, &mut error);
+ if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) }
+ }
+ }
+
+ fn get_property_rootfs_dfd(&self) -> i32 {
+ unsafe {
+ let mut value = Value::from_type(<i32 as StaticType>::static_type());
+ gobject_ffi::g_object_get_property(self.to_glib_none().0, "rootfs-dfd".to_glib_none().0, value.to_glib_none_mut().0);
+ value.get().unwrap()
+ }
+ }
+}
--- /dev/null
+extern crate gio_sys as gio_ffi;
+extern crate glib_sys as glib_ffi;
+extern crate gobject_sys as gobject_ffi;
+extern crate libostree_sys as ffi;
+#[macro_use]
+extern crate glib;
+extern crate gio;
+extern crate libc;
+#[macro_use]
+extern crate bitflags;
+#[macro_use]
+extern crate lazy_static;
+
+use glib::Error;
+
+// re-exports
+#[cfg_attr(feature = "cargo-clippy", allow(clippy))]
+mod auto;
+pub use auto::functions::*;
+pub use auto::*;
+
+mod repo;
+
+mod object_name;
+pub use object_name::ObjectName;
+
+// public modules
+pub mod prelude {
+ pub use auto::traits::*;
+ pub use repo::RepoExtManual;
+}
--- /dev/null
+use ffi;
+use functions::{object_name_deserialize, object_name_serialize, object_to_string};
+use glib;
+use glib::translate::*;
+use glib_ffi;
+use std::fmt::Display;
+use std::fmt::Error;
+use std::fmt::Formatter;
+use std::hash::Hash;
+use std::hash::Hasher;
+use ObjectType;
+
+fn hash_object_name(v: &glib::Variant) -> u32 {
+ unsafe { ffi::ostree_hash_object_name(v.to_glib_none().0 as glib_ffi::gconstpointer) }
+}
+
+#[derive(Eq, Debug)]
+pub struct ObjectName {
+ variant: glib::Variant,
+ checksum: String,
+ object_type: ObjectType,
+}
+
+impl ObjectName {
+ pub fn new_from_variant(variant: glib::Variant) -> ObjectName {
+ let deserialize = object_name_deserialize(&variant);
+ ObjectName {
+ variant,
+ checksum: deserialize.0,
+ object_type: deserialize.1,
+ }
+ }
+
+ pub fn new<S: Into<String>>(checksum: S, object_type: ObjectType) -> ObjectName {
+ let checksum = checksum.into();
+ let variant = object_name_serialize(checksum.as_str(), object_type).unwrap();
+ ObjectName {
+ variant,
+ checksum,
+ object_type,
+ }
+ }
+
+ pub fn checksum(&self) -> &str {
+ self.checksum.as_ref()
+ }
+
+ pub fn object_type(&self) -> ObjectType {
+ self.object_type
+ }
+
+ pub fn name(&self) -> String {
+ object_to_string(self.checksum(), self.object_type())
+ .expect("type checks should make this safe")
+ }
+}
+
+impl Display for ObjectName {
+ fn fmt(&self, f: &mut Formatter) -> Result<(), Error> {
+ write!(f, "{}", self.name())
+ }
+}
+
+impl Hash for ObjectName {
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ state.write_u32(hash_object_name(&self.variant));
+ }
+}
+
+impl PartialEq for ObjectName {
+ fn eq(&self, other: &ObjectName) -> bool {
+ self.checksum == other.checksum && self.object_type == other.object_type
+ }
+}
--- /dev/null
+use auto::{Repo, RepoListRefsExtFlags};
+use ffi;
+use gio;
+use glib;
+use glib::translate::*;
+use glib::Error;
+use glib::IsA;
+use glib_ffi;
+use std::collections::{HashMap, HashSet};
+use std::path::Path;
+use std::ptr;
+use ObjectName;
+
+unsafe extern "C" fn read_variant_table(
+ _key: glib_ffi::gpointer,
+ value: glib_ffi::gpointer,
+ hash_set: glib_ffi::gpointer,
+) {
+ let value: glib::Variant = from_glib_none(value as *const glib_ffi::GVariant);
+ let set: &mut HashSet<ObjectName> = &mut *(hash_set as *mut HashSet<ObjectName>);
+ set.insert(ObjectName::new_from_variant(value));
+}
+
+unsafe fn from_glib_container_variant_set(ptr: *mut glib_ffi::GHashTable) -> HashSet<ObjectName> {
+ let mut set = HashSet::new();
+ glib_ffi::g_hash_table_foreach(
+ ptr,
+ Some(read_variant_table),
+ &mut set as *mut HashSet<ObjectName> as *mut _,
+ );
+ glib_ffi::g_hash_table_unref(ptr);
+ set
+}
+
+pub trait RepoExtManual {
+ fn new_for_path<P: AsRef<Path>>(path: P) -> Repo;
+
+ fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(
+ &self,
+ commit_checksum: &str,
+ maxdepth: i32,
+ cancellable: P,
+ ) -> Result<HashSet<ObjectName>, Error>;
+
+ fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
+ &self,
+ refspec_prefix: P,
+ cancellable: Q,
+ ) -> Result<HashMap<String, String>, Error>;
+
+ fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
+ &self,
+ refspec_prefix: P,
+ flags: RepoListRefsExtFlags,
+ cancellable: Q,
+ ) -> Result<HashMap<String, String>, Error>;
+}
+
+impl<O: IsA<Repo> + IsA<glib::Object> + Clone + 'static> RepoExtManual for O {
+ fn new_for_path<P: AsRef<Path>>(path: P) -> Repo {
+ Repo::new(&gio::File::new_for_path(path.as_ref()))
+ }
+
+ fn traverse_commit<'a, P: Into<Option<&'a gio::Cancellable>>>(
+ &self,
+ commit_checksum: &str,
+ maxdepth: i32,
+ cancellable: P,
+ ) -> Result<HashSet<ObjectName>, Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let mut hashtable = ptr::null_mut();
+ let _ = ffi::ostree_repo_traverse_commit(
+ self.to_glib_none().0,
+ commit_checksum.to_glib_none().0,
+ maxdepth,
+ &mut hashtable,
+ cancellable.into().to_glib_none().0,
+ &mut error,
+ );
+ if error.is_null() {
+ Ok(from_glib_container_variant_set(hashtable))
+ } else {
+ Err(from_glib_full(error))
+ }
+ }
+ }
+
+ fn list_refs<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
+ &self,
+ refspec_prefix: P,
+ cancellable: Q,
+ ) -> Result<HashMap<String, String>, Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let mut hashtable = ptr::null_mut();
+ let _ = ffi::ostree_repo_list_refs(
+ self.to_glib_none().0,
+ refspec_prefix.into().to_glib_none().0,
+ &mut hashtable,
+ cancellable.into().to_glib_none().0,
+ &mut error,
+ );
+
+ if error.is_null() {
+ Ok(FromGlibPtrContainer::from_glib_container(hashtable))
+ } else {
+ Err(from_glib_full(error))
+ }
+ }
+ }
+
+ fn list_refs_ext<'a, 'b, P: Into<Option<&'a str>>, Q: Into<Option<&'b gio::Cancellable>>>(
+ &self,
+ refspec_prefix: P,
+ flags: RepoListRefsExtFlags,
+ cancellable: Q,
+ ) -> Result<HashMap<String, String>, Error> {
+ unsafe {
+ let mut error = ptr::null_mut();
+ let mut hashtable = ptr::null_mut();
+ let _ = ffi::ostree_repo_list_refs_ext(
+ self.to_glib_none().0,
+ refspec_prefix.into().to_glib_none().0,
+ &mut hashtable,
+ flags.to_glib(),
+ cancellable.into().to_glib_none().0,
+ &mut error,
+ );
+
+ if error.is_null() {
+ Ok(FromGlibPtrContainer::from_glib_container(hashtable))
+ } else {
+ Err(from_glib_full(error))
+ }
+ }
+ }
+}
--- /dev/null
+extern crate gio;
+extern crate glib;
+extern crate libostree;
+extern crate tempfile;
+
+use glib::prelude::*;
+use libostree::prelude::*;
+use std::fs;
+use std::io;
+use std::io::Write;
+
+fn create_repo(repodir: &tempfile::TempDir) -> Result<libostree::Repo, glib::Error> {
+ let repo = libostree::Repo::new_for_path(repodir.path());
+ repo.create(libostree::RepoMode::Archive, None)?;
+ Ok(repo)
+}
+
+fn create_test_file(treedir: &tempfile::TempDir) -> Result<(), io::Error> {
+ let mut testfile = fs::File::create(treedir.path().join("test.txt"))?;
+ write!(testfile, "test")?;
+ Ok(())
+}
+
+fn create_mtree(
+ treedir: &tempfile::TempDir,
+ repo: &libostree::Repo,
+) -> Result<libostree::MutableTree, glib::Error> {
+ let gfile = gio::File::new_for_path(treedir.path());
+ let mtree = libostree::MutableTree::new();
+ repo.write_directory_to_mtree(&gfile, &mtree, None, None)?;
+ Ok(mtree)
+}
+
+fn commit_mtree(
+ repo: &libostree::Repo,
+ mtree: &libostree::MutableTree,
+) -> Result<String, glib::Error> {
+ repo.prepare_transaction(None)?;
+ let repo_file = repo.write_mtree(mtree, None)?.downcast().unwrap();
+ let checksum = repo.write_commit(None, "Test Commit", None, None, &repo_file, None)?;
+ repo.transaction_set_ref(None, "test", checksum.as_str());
+ repo.commit_transaction(None)?;
+ Ok(checksum)
+}
+
+fn open_repo(repodir: &tempfile::TempDir) -> Result<libostree::Repo, glib::Error> {
+ let repo = libostree::Repo::new_for_path(repodir.path());
+ repo.open(None)?;
+ Ok(repo)
+}
+
+#[test]
+fn should_commit_content_to_repo_and_list_refs_again() {
+ let repodir = tempfile::tempdir().unwrap();
+ let treedir = tempfile::tempdir().unwrap();
+
+ let repo = create_repo(&repodir).expect("failed to create repo");
+ create_test_file(&treedir).expect("failed to create test file");
+ let mtree = create_mtree(&treedir, &repo).expect("failed to build mtree");
+ let checksum = commit_mtree(&repo, &mtree).expect("failed to commit mtree");
+
+ let repo = open_repo(&repodir).expect("failed to open repo");
+ let refs = repo.list_refs(None, None).expect("failed to list refs");
+ assert_eq!(refs.len(), 1);
+ assert_eq!(refs["test"], checksum);
+}